J'ai un programme golang que je veux redémarrer après qu'il se termine sur une boîte Debian Squeeze. La chose est de servir HTTP derrière une configuration Apache 2 mod_proxy. Je ne m'attends pas à ce que le processus échoue, mais j'aimerais avoir une assurance contre cela.
Sur Ubuntu, j'aurais utilisé upstart pour maintenir le processus en vie. Debian n'aime pas Upstart d'après ce que je comprends car c'est un remplacement d'init.
Existe-t-il une alternative qui redémarre un ou plusieurs processus après leur fin qui fonctionne sur Squeeze et joue bien avec init?
debian
init.d
debian-squeeze
Effacé
la source
la source
Réponses:
La meilleure façon de procéder est le
daemontools
. Ils vous permettent de surveiller et de réapparaître les processus.Voir la documentation sur leur site Web: http://cr.yp.to/daemontools.html
la source
superviser est une alternative légère et efficace. Sous debian, il est empaqueté dans daemontools . Vous pouvez également lire cette question connexe , qui répertorie certaines critiques de supervision et mentionne redémarrer comme une autre possibilité.
Enfin, si vous voulez quelque chose d'incroyablement facile à configurer, j'ai eu beaucoup de succès avec monit . Il est également empaqueté dans Debian .
la source
la supervision ou la surveillance sont utiles pour maintenir en vie un seul processus. Puisque vous demandez de garder "un ou plusieurs" processus en vie, je voudrais brancher supervisord . Il est certainement exagéré de gérer un seul processus, mais si vous devez suivre plusieurs processus, cela peut être votre truc.
la source
Une option consiste à utiliser
/etc/inittab
au lieu de mettre votre script dedans/etc/init.d/
.Vous ajoutez simplement une entrée au format suivant:
<jobname>:<runlevels>:respawn:<command>
Malheureusement, cela signifie que vous ne pouvez pas utiliser les commandes init normales de démarrage / arrêt / redémarrage, mais cela devrait garantir que votre script s'exécute tout le temps.
la source
La méthode de distribution croisée pour gérer les redémarrages du processus est avec cron et un script simple. Vous pouvez voir un résumé ici Comment maintenir un travail en cours d'exécution sous Linux
Le script ressemble à quelque chose
la source