2 votes

Meilleures pratiques pour les démons Ubuntu ?

J'ai un serveur web RingoJS (qui fonctionne sur Jetty) qui fait partie d'une installation de proxy inverse Apache.

Je voudrais que plusieurs processus Ringo s'exécutent de manière autonome en arrière-plan, qu'ils démarrent automatiquement au redémarrage, etc. En gros, la même chose que ce que feraient les démons Apache ou Postgresql.

J'ai étudié l'exécution de processus en arrière-plan (via & ou bg), nohup, et l'utilisation de screen pour maintenir des contextes multiples. Je ne suis pas sûr de la meilleure pratique à adopter ici.

J'aimerais pouvoir facilement identifier (nom amical) chaque processus RingoJS en cours d'exécution. (un pour chaque application). Puis être capable de les démarrer et arrêter facilement comme on le fait avec apachectl ou autre. J'aimerais que les processus démarrent automatiquement au redémarrage, et ne soient pas affectés par des sessions ssh répétées.

Screen semble être un bon choix, mais son utilisation semble plus adaptée au portage des contextes Shell qu'au maintien de processus système à long terme. Je peux exécuter des tâches en arrière-plan, mais je m'inquiète des processus zombies après la déconnexion ou des PID cryptiques qui n'identifient pas clairement l'application ou le service en cours d'exécution.

Quelqu'un peut-il me donner des indications sur ce que je "devrais" faire pour obtenir ce résultat ?

Gracias.

7voto

songsong Points 173

Vous devriez créer un service init. Ubuntu utilise upstart. http://upstart.ubuntu.com/

2voto

jammus Points 1796

Pour les applications qui ne disposent pas d'une méthode intégrée pour fonctionner en tant que deamon, il est préférable d'utiliser la fonction start-stop-daemon dans un init/upstart script que vous créez pour démarrer l'application. Vous pouvez utiliser start-stop-daemon pour démarrer quelque chose en arrière-plan, il peut enregistrer le pid dans le système de fichiers afin de pouvoir arrêter le processus le moment venu.

Il suffit de regarder dans /etc/init.d/ pour trouver de nombreux exemples, et plus particulièrement dans /etc/init/skeleton pour trouver un modèle. Beaucoup des scripts de démarrage existants utilisent start-stop-daemon. Y compris ssh, ntp, rsync, et beaucoup d'autres.

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