2 votes

Permettre à un processus à l'écran de redémarrer lui-même

Le système est Debian Whezy x64. J'utilise actuellement screen pour démarrer des programmes en tant qu'utilisateur plutôt qu'en tant que root. Voici à quoi cela ressemble : Dans le fichier /etc/rc.local, j'appelle

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

Ensuite, dans /home/user/scripts/startup, j'appelle quelques programmes Python comme ceci :

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

Ils démarrent tous très bien. Le problème est que ces programmes ont tendance à se mettre à jour toutes les semaines ou presque. Lorsque le programme se met à jour, il tente de se redémarrer. Lors du redémarrage du programme, la session d'écran se termine et le programme ne redémarre pas. Au bout de quelques jours, je constate que le programme ne fonctionne pas et je dois le redémarrer à la main.

Y a-t-il quelque chose que je puisse faire pour que le programme redémarre de lui-même après un redémarrage du programme ?

Edit : J'ai lu quelque chose à propos du "mode zombie" de l'écran qui lui permet de rester actif, mais je ne sais pas comment l'invoquer au démarrage.

Remerciements

1voto

Ubuntu_user Points 11

Créez un script qui s'exécute en boucle infinie et surveille l'exécution du programme.

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

Lancez le script à l'écran.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X