Permitir que um processo na tela seja reiniciado

2

O sistema é Debian Whezy x64. Eu atualmente uso tela para iniciar programas como usuário em vez de root. Se parece com isso: Em /etc/rc.local, eu chamo

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

Então, em / home / user / scripts / startup, eu chamo alguns programas em 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, aproximadamente. Quando o programa é atualizado, ele tenta se reiniciar. Após a reinicialização do programa, a sessão de tela é encerrada 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.

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

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

Obrigado

    
por Oddworld 24.01.2013 / 21:05

1 resposta

1

Crie um script que seja executado em loop infinito e observe que o programa está sendo executado.

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

Inicie o script na tela.

    
por 25.01.2013 / 22:23