GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment exécuter un script avec Systemd juste avant l'arrêt ?

Que dois-je mettre dans le [install] section, de sorte que systemd exécute /home/me/so.pl juste avant l'arrêt et aussi avant /proc/self/net/dev est détruit ?

[Unit]
Description=Log Traffic

[Service]
ExecStart=/home/me/so.pl

[Install]
?

Réponse acceptée :

La solution suggérée est d'exécuter l'unité de service comme un service normal - jetez un œil au [Install] section. Donc tout doit être pensé à l'envers, les dépendances aussi. Parce que l'ordre d'arrêt est l'ordre de démarrage inverse. C'est pourquoi le script doit être placé dans ExecStop= .

La solution suivante fonctionne pour moi :

[Unit]
Description=...

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=<your script/program>

[Install]
WantedBy=multi-user.target

RemainAfterExit=true est nécessaire lorsque vous n'avez pas de ExecStart actions.

Après avoir créé le fichier, assurez-vous de systemctl daemon-reload et systemctl enable yourservice --now .

Je viens de le recevoir de systemd IRC, les crédits vont à mezcalero.


Linux
  1. Comment configurer le script de démarrage et d'arrêt sur Gentoo Linux

  2. Linux - Comment exécuter un script sur le verrouillage/déverrouillage de l'écran ?

  3. Linux - Comment obtenir moins de Ttys avec Systemd ?

  4. Comment exécuter un script en arrière-plan (linux openwrt) ?

  5. Comment exécuter un script avant tout le reste à l'arrêt avec systemd ?

Comment exécuter une commande / un script Linux Shell en arrière-plan

Comment exécuter un logiciel Windows sur Linux avec des bouteilles

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment exécuter des pods en tant que services systemd avec Podman

Comment exécuter un script Shell en tant que service SystemD sous Linux

Comment exécuter un alias avec Sudo sous Linux