J'ai utilisé un script simple avec cron pour m'assurer que le programme est en cours d'exécution. Si ce n'est pas le cas, il le démarrera. Ce n'est peut-être pas la solution parfaite que vous recherchez, mais elle est simple et fonctionne plutôt bien.
#!/bin/bash
#make-run.sh
#make sure a process is always running.
export DISPLAY=:0 #needed if you are running a simple gui app.
process=YourProcessName
makerun="/usr/bin/program"
if ps ax | grep -v grep | grep $process > /dev/null
then
exit
else
$makerun &
fi
exit
Ajoutez ensuite une tâche cron toutes les minutes ou toutes les 5 minutes.
Monit est parfait pour ça :)
Vous pouvez écrire des fichiers de configuration simples qui indiquent à monit de regarder, par ex. un port TCP, un fichier PID etc
monit exécutera une commande que vous spécifiez lorsque le processus qu'il surveille est indisponible/utilise trop de mémoire/attache le CPU trop longtemps/etc. Il affichera également une alerte par e-mail vous indiquant ce qui s'est passé et s'il peut faire quelque chose à ce sujet.
Nous l'utilisons pour maintenir une charge de nos sites Web en cours d'exécution tout en nous avertissant rapidement en cas de problème.
-- Votre fidèle employé, Monit