Как узнать причину прекращения работы скрипта python в фоновом режиме?

Я купил сервер VDS несколько дней назад, чтобы у меня работали боты Telegram 24/7.
Я не могу держать оболочку всегда открытой, поэтому я решил использовать этот "хак":
1. В скрипт Python добавьте #!/usr/bin/python3.4
2. sudo chmod u+x mybot.py sudo nohup ./mybot.py & Скрипт успешно запускается и работает нормально, однако через 8-10 часов он со временем перестает отвечать! Я вижу это в ps -aux выходной хотя.
Чтобы быть уверенным, что это проблема VDS, я запустил ботов на своем микрокомпьютере ODroid-C1 на один день. Проблем не найдено, оба скрипта работали нормально.

Основная проблема в том, что я не могу понять, почему именно эти боты на VDS перестают отвечать. Есть ли способ узнать?

PS На ODroid и VDS установлена ​​Ubuntu 14.04.

1 ответ

Решение

Вы можете попробовать 2 других способа:

Первый способ, с экрана:

sudo apt-get install screen

затем запустите screen, выполнив ту же команду, и запустите скрипт в 'screen' без nohup.

sudo ./mybot.py

Ctrl + A Ctrl + D, чтобы отсоединиться от экрана, отключиться от сеанса SSH. В следующий раз, когда вы видите, приложение зависло типа

screen -r

прикрепить, чем сеанс экрана, где у вас работает приложение Python

Второе - добавьте перенаправление из stdout и stderr вашего скрипта в лог-файл (ы)

sudo nohup ./mybot.py >> /var/log/mybot_out.log 2>>/var/log/mybot_err.log &

или в один файл:

sudo nohup ./mybot.py >> /var/log/mybot_out.log 2>>&1 &

затем изучите файл журнала после следующего зависания.

РЕДАКТИРОВАТЬ: Если вы не видите ничего полезного от вывода приложения до stdout, stderr, когда он завис, - установите strace и присоедините его к процессу с вашим скриптом:

strace -p <PID>

Может быть, вы можете найти что-то полезное из этого. Это если не показывает ничего полезного (опять же) - перезапустите приложение из strace.

... strace ./mybot.py

лучше с выводом в лог файл, если у вас достаточно свободного места. Затем исследуйте последние тысячи строк журнала (может содержать много дубликатов)

Другие вопросы по тегам