Сбой программы Python при запуске в сеансе tmux из загрузки
У меня есть программа на python3, которую я запускаю без проблем в конфигурации безголового малинового пи, где я подключаюсь по ssh. Я вхожу в свой пи, запускаю сеанс tmux и запускаю программу. Это будет работать бесконечно. Во время разработки, когда возникнет исключение, программа python прекратит работу и увидит информацию об ошибке.
Теперь, если бы мой пи перезагружался, пока меня не было, я бы хотел, чтобы он автоматически запускал эту программу. Я реализовал следующие шаги, чтобы это произошло:
Я создал скрипт, который содержит эту строку:
tmux new-session -d -s xbnw 'python3 /home/pi/python/XbNWSer05.py'
Потом я модифицировал /etc/rc.local
включить эту строку:
sudo -u pi bash /home/pi/tmux_xbnw.sh
Теперь, когда я перезагружаю свой пи, все работает в течение нескольких минут. Программа явно работает. Я могу войти в систему и присоединиться к сеансу и увидеть результаты отладки, и все выглядит хорошо.
Через несколько минут, хотя что-то идет не так, и если я вошел в систему и подключился к сеансу tmux, я неожиданно обнаружил себя в командной строке, как будто программа никогда не запускалась. Также сессия tmux больше не активна. Там нет никаких признаков того, что случилось.
1) Я неправильно запускаю программу? 2) Если так, есть ли способ выяснить, что случилось?
1 ответ
Добавьте файл журнала, взломанный вручную или с помощью модуля logger. Затем вы можете узнать, запущена ли программа, и вы можете войти каждую минуту или около того, чтобы увидеть, когда она умирает и каково было последнее состояние.
Вы также можете проверить системный журнал, была ли перезагрузка. У меня был плохой кабель питания, из-за которого мой Pi перезагружался в прошлом...