Разрешение процессу на экране перезапустить себя

Разрешение процессу на экране перезапустить себя

Система — Debian Whezy x64. В настоящее время я использую screen для запуска программ как пользователь, а не как 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

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

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

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

Связанный контент