Назад | Перейти на главную страницу

Отсоединенный экран GNU не может записывать в файл после выхода из системы ssh

Я подключился по 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 сеанс или что-то в этом роде.

Если вам нужна дополнительная информация по любому из них, не стесняйтесь спрашивать.