2

Система Debian Whezy x64. В настоящее время я использую экран для запуска программ как пользователь, а не как пользователь root. Это выглядит так: в /etc/rc.local я звоню

su -c "/home/user/scripts/startup" user

Затем в /home /user /scripts /startup я вызываю несколько программ на python:

screen -dmS my_program python /home/user/my_program.py 

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

Могу ли я что-нибудь сделать, чтобы программа снова запустилась после перезапуска программы?

Редактировать: я прочитал кое-что о "режиме зомби" экрана, который позволяет ему оставаться активным, но я не знаю, как вызвать его при загрузке.

Спасибо

1 ответ1

1

Создайте скрипт, который работает в бесконечном цикле и следит за тем, чтобы программа работала.

#!/bin/bash
while true; do ps aux | grep -v grep | grep -q <program> || <start_program>; sleep 5; done

Запустите скрипт на экране.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .