Utiliser exec
pour démarrer le processus est correct, mais lorsque vous l'arrêtez, si vous avez absolument besoin d'exécuter un script spécifique ou un ensemble de commandes, vous pouvez utiliser la pre-stop
strophe.
pre-stop exec shutdown.sh
Je suppose que vous avez essayé d'utiliser une strophe exec et que cela n'a pas fonctionné, peut-être parce que votre démon nécessite un nettoyage spécialisé. Notez que les démons qui se comportent bien devraient recevoir un signal de démarrage lorsque le travail est arrêté, et s'ils gèrent le signal de manière appropriée, aucun nettoyage supplémentaire ne devrait être nécessaire.
L'arrêt d'un travail implique d'y envoyer SIGTERM. S'il y a quelque chose à faire avant SIGTERM, faites-le ici. On peut dire que les services doivent gérer SIGTERM très gracieusement, donc cela ne devrait pas être nécessaire.
s'il y a quelque chose de critique, comme un vidage sur le disque, et que l'augmentation du délai d'expiration n'est pas une option, le pré-arrêt n'est pas un mauvais endroit pour le faire
Lisez également cette section pour l'intégralité du flux de travail de ce qui se passe lorsque vous arrêtez un travail. Remarquez quand le pré-arrêt est exécuté et comment un signal est envoyé au processus par la suite, c'est ainsi que upstart gère les arrêts de travail normalement.
Ma source est le livre de recettes officiel d'Upstart à: http://upstart.ubuntu.com/cookbook/