Как корректно запустить Python скрипт в фоне через SSH?
Здравствуйте.
Не могу понять, почему все далее перечисленные варианты запуска Python скрипта в фоне не работают как я ожидаю. Есть у меня скрипт, который использует multiprocessing библиотеку для парсинга сайта. Выполняться скрипт должен 7-9 дней. Проверяю, запущен ли скрипт в фоне или нет с помощью команды ps.
Вот что я пробовал:
nohup python3 script.py
После ввода команды терминал выводит сообщение "nohup: ignoring input and appending output to 'nohup.out'", но не дает ввести новую команду находясь в режиме обработки команды. Если нажать ctrl+с, то контроль над консолью возвращается, но работа скрипта прекращается. Если консоль закрыть, то запущенный скриптом процесс умирает.
python3 script.py > /dev/null &
В это случае консоль возвращает номер запущенного процесса, но вместо ожидаемого молчания от скрипта, вижу в консоли разные сервисные сообщения скрипта (в основном предупреждения от библиотеки urllib3). Консоль как и в первом случае не дает вводить новые команды без ввода ctrl+с. Если закрыть консоль, то скрипт отключается.
python3 script.py > script.log 2>&1 /null &
Консоль возвращает номер запущенного процесса, никаких предупреждений не выводится. Если закрыть консоль, а потом снова запустить, то после ввода команды ps процесс существует, но рандомным образом процесс умирает. Иногда через 5 минут, иногда чере 5 часов. В файле с логами (script.log) нет вообще никаких сообщений о краше.
Подскажите каким образом запускать скрипт, чтобы он работал в фоне корректно или как отладить текущую ситуацию?