Не закрывайте код Python после закрытия оболочки - PullRequest
0 голосов
/ 31 марта 2019

Я работаю над проблемой на удаленном сервере (я использую ssh для подключения). Поскольку я новичок в области, я использую jupyter-notebook, чтобы я мог исследовать и кодировать. Некоторые части моего кода занимают много времени (например, 4-5 часов), и я не могу поддерживать соединение так долго. Как сохранить работоспособность кода после закрытия оболочки? Должен ли я просто скопировать его в файл .py и использовать такие команды, как tmux или screen?

Ответы [ 2 ]

2 голосов
/ 31 марта 2019

Использовать экран.

$ screen

Это создаст сеанс экрана, и когда вы закончите, вы можете использовать клавиши ctrl-a-d для отсоединения.

Чтобы вернуться:

$ screen -list

Это покажет список отдельных сеансов экрана. Для подключения

$ screen -r

0 голосов
/ 31 марта 2019

Я использую PM2, менеджер процессов Node.js , который также работает со скриптами Python (и многими другими языками).

Установите, а затем начните свой код с:

pm2 start your_code.py

Список запущенных процессов:

pm2 list 

И да, вы можете запускать столько скриптов с одного терминала, сколько захотите.

Посмотрите журналы с:

pm2 logs

PM2 по умолчанию перезапускает ваш скрипт после ошибки или завершения. Чтобы предотвратить это и позволить вашему коду запускаться только один раз, добавьте флаг --no-autorestart:

pm2 start your_code.py --no-autorestart

Процессы продолжают выполняться при выходе из терминала и доступны при повторном входе на экземпляр сервера. Вы также можете настроить PM2 так, чтобы он перезапускал ваши скрипты после перезагрузки вашего экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...