Я подключился по ssh к кластеру Linux, который использует домашний каталог AFS. Я пытаюсь использовать экран GNU для запуска длительной программы на отдельном экране. Если я остаюсь в системе, программа работает отлично, включая запись в файл.
Я хочу иметь возможность выйти из сеанса ssh и оставить программу работающей на отключенном экране. Я пытаюсь выйти из системы и снова войти по ssh. Однако, когда я проверяю отключенный экран, я вижу, что моя программа потерпела крах, потому что у нее не было разрешений на запись в файл.
[local]me: ssh info@inf.ed.us
[remote]user: screen # this pops up a new screen
[remote]user: python get_data.py
Затем я нажимаю Ctrl-a d (чтобы отсоединить экран)
[remote]user: logout
[local]me: ssh info@inf.ed.us
[local]me: screen
И вот что я вижу на отключенном экране:
Traceback (most recent call last):
File "get_data.py", line 430, in <module>
File "get_data.py", line 346, in produce_roof_patches
File "get_data.py", line 225, in save_patch
IOError: [Errno 13] Permission denied: '../data/training/labels.csv'
Если я не выхожу из системы, а просто отключаюсь (Ctrl-a d) и снова подключаюсь через «экран», то программа продолжает работать без каких-либо проблем.
Я читал, что это связано с тем, что при выходе из системы моя файловая система отключается, и программа не имеет разрешений на запись где-либо в моей файловой системе. Есть ли обходной путь для этого?
Использование абсолютных путей вместо относительных для записи в файл устранило мою проблему.
Отдельно ... как в ... <control> - <z> затем bg
? или работает с &
условное обозначение? Они не отсоединены. Это разветвленные процессы.
Отдельные процессы можно запустить с помощью nohup
команду или запустить в tmux
сеанс или что-то в этом роде.
Если вам нужна дополнительная информация по любому из них, не стесняйтесь спрашивать.