Permitir que un proceso en la pantalla se reinicie

Permitir que un proceso en la pantalla se reinicie

El sistema es Debian Whezy x64. Actualmente uso la pantalla para iniciar programas como usuario en lugar de root. Se ve así: En /etc/rc.local, llamo

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

Luego, en /home/user/scripts/startup, llamo a algunos programas de Python como este:

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

Todos empiezan bien. El problema es que estos programas tienden a actualizarse cada semana aproximadamente. Cuando el programa se actualiza, intenta reiniciarse. Al reiniciar el programa, la sesión de pantalla finaliza y el programa no se inicia de nuevo. Entonces, después de unos días, noto que el programa no funciona y necesito iniciarlo nuevamente manualmente.

¿Hay algo que pueda hacer para garantizar que el programa se inicie nuevamente después de reiniciarlo?

Editar: Leí algo sobre el "modo zombie" de la pantalla que le permite permanecer activo, pero no sé cómo invocarlo en el arranque.

Gracias

Respuesta1

Cree un script que se ejecute en un bucle infinito y observe que el programa se está ejecutando.

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

Inicie el script en la pantalla.

información relacionada