Permitir que um processo na tela seja reiniciado

Permitir que um processo na tela seja reiniciado

O sistema é Debian Whezy x64. Atualmente uso screen para iniciar programas como usuário em vez de root. Parece assim: Em /etc/rc.local, eu chamo

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

Então, em/home/user/scripts/startup, chamo alguns programas python como este:

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

Todos eles começam bem. O problema é que esses programas tendem a se atualizar a cada semana ou mais. Quando o programa é atualizado, ele tenta reiniciar sozinho. Após a reinicialização do programa, a sessão da tela termina e o programa não é iniciado novamente. Então, depois de alguns dias, percebo que o programa não está funcionando e preciso reiniciá-lo manualmente.

Há algo que eu possa fazer para garantir que o programa será iniciado novamente após a reinicialização do programa?

Editar: li algo sobre o "modo zumbi" da tela que permite que ela permaneça ativa, mas não sei como invocá-la na inicialização.

Obrigado

Responder1

Crie um script que seja executado em loop infinito e observe o programa em execução.

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

Inicie o script na tela.

informação relacionada