1 votes

systemd : Démarrer une autre unité lorsque l'unité se termine

Disons que j'ai une unité foo.service que je veux exécuter après bar.service se termine (avec n'importe quel état, qu'il s'agisse d'un succès ou d'un échec). Je ne pense pas que les After= o Before= m'aideront dans cette tâche. Comment puis-je accomplir cela dans systemd et non dans le script lancé par systemd ?

Dans mon environnement, disons bar.service échoue et a une ligne OnFailure=foo.service pour forcer foo.service pour résoudre les problèmes, puis lancez l'application bar.service encore une fois.

1voto

Lenniey Points 5062

Vous pouvez (probablement) utiliser ExecStopPost=

Commandes supplémentaires exécutées après l'arrêt du service. Cela inclut les cas où les commandes configurées dans ExecStop= w utilisés, lorsque le service n'a pas de ExecStop= d le service s'est arrêté de manière inattendue. Cet argument prend en compte plusieurs commandes en suivant le même schéma que celui décrit pour ExecStart= . L'utilisation des Ces réglages sont facultatifs. Spécification et variable d'environnement est prise en charge. Notez que - contrairement à ExecStop= - spécifiées avec ce paramètre sont invoquées lorsqu'une commande s correctement et qu'il est à nouveau arrêté.

Il est recommandé d'utiliser ce réglage pour l'opéra de nettoyage. doivent être exécutées même si le service n'a pas démarré correctement. Les commandes configurées avec ce paramètre doivent pouvoir fonctionner même si le service ne démarre pas correctement. si le service n'a pas démarré à mi-chemin et est resté incomplètement des données incomplètement initialisées. Comme les processus du service ont déjà été déjà terminés lorsque les commandes spécifiées avec ce paramètre sont sont exécutées, elles ne doivent pas tenter de communiquer avec eux.

Notez que toutes les commandes qui sont configurées sont invoquées avec le code de résultat du service, ainsi qu'avec le code du processus principal. ainsi que le code de sortie et l'état du processus principal, définis dans le paramètre $SERVICE_RESULT , $EXIT_CODE et $EXIT_STATUS les variables d'environnement, voir systemd.exec(5) f détails.

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