Question

Je me demande toujours qui devrait le faire. Dans Ruby , nous avons le Daemons bibliothèque permettant aux scripts Ruby de se démoniser. Ensuite, consultez Dieu (un outil de surveillance de processus similaire à monit ), je vois que Dieu peut démoniser les processus.

Avez-vous une réponse définitive?

Était-ce utile?

La solution

Vous ne pouvez probablement pas obtenir de réponse définitive, car nous nous retrouvons généralement avec les deux: le processus a la capacité de se démoniser lui-même et le moniteur de processus a la possibilité de démoniser ses enfants.

Personnellement, je préfère que le moniteur de processus ou le script le fasse, pour plusieurs raisons:
1. Si le moniteur de processus souhaite suivre de près ses enfants pour les redémarrer s'ils meurent, il peut choisir de ne pas les démoniser. Un SIGCHLD sera remis au moniteur lorsque l'un de ses processus enfants sera terminé. Dans les systèmes embarqués, nous le faisons souvent.
2. Généralement, lors de la démonisation, vous définissez également les paramètres euid et egid. Je préfère ne pas encoder dans chaque processus enfant une connaissance de la stratégie au niveau du système, telle que les utilitaires à utiliser.
3. Il permet de réutiliser la même application en tant qu’outil de ligne de commande ou démon (j’admets volontiers que cela se produit rarement dans la pratique).

Autres conseils

Je dirais qu'il est préférable que votre script le fasse. Je ne connais pas votre outil de surveillance des processus ici, mais je pense que les utilisateurs pourraient potentiellement utiliser un autre outil, ce qui signifie qu’il serait préférable de disposer du script.

Si vous pouvez imaginer que le script soit exécuté de manière non démon, j'ajouterais une option au script pour activer ou désactiver la démonisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top