From 0444a862de6d806cb99b1203e95d74879f1a5b5b Mon Sep 17 00:00:00 2001 From: whirigoyen Date: Thu, 28 Jul 2022 16:09:24 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20mod=C3=A8le=20unit=C3=A9=20systemd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoSystemd.md | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/HowtoSystemd.md b/HowtoSystemd.md index 099ecb17..8d7f82a6 100644 --- a/HowtoSystemd.md +++ b/HowtoSystemd.md @@ -170,6 +170,7 @@ Redémarrer le serveur : + ### Modifier une unité ~~~ @@ -178,7 +179,7 @@ Redémarrer le serveur : # systemctl daemon-reload ~~~ -Exemple avec ssh.service sous Debian 8 : +Exemple avec `ssh.service` sous Debian 8 : ~~~ [Unit] @@ -205,6 +206,7 @@ Alias=sshd.service > ExecStart=/bin/sh -c '/path/to/program >> /path/to/log' > ``` + ### Modifier partiellement une unité Au lieu de tout ré-écrire, on peut surcharger une partie de l'unité en créant un fichier dans `/etc/systemd/system/NOM_UNITÉ.service.d/` qui précisera les modifications à faire. Exemple avec l'unité de _varnish_ on crée le fichier `/etc/systemd/system/varnish.service.d/override.conf` : @@ -231,7 +233,7 @@ On pourra ensuite lister l'unité complète vue par _systemd_ : # systemctl cat varnish ~~~ -A noter que cela fonctionne aussi pour les services qui n'ont pas d'unité systemd mais encore une unité sysvinit dans /etc/init.d/, on pourra par exemple mettre en place un redémarrage automatique d'un service : +A noter que cela fonctionne aussi pour les services qui n'ont pas d'unité systemd mais encore une unité sysvinit dans `/etc/init.d/`, on pourra par exemple mettre en place un redémarrage automatique d'un service : ~~~ [Service] @@ -240,9 +242,48 @@ Restart=always RemainAfterExit=no ~~~ -## Utiliser les templates d'unités -On peut créer/utiliser des templates d'unités. Cela permet de gérer à la volée des instances de services. +### Créer une unité systemd + +Modèle simple : + +~~~ +# /etc/systemd/system/.service + +[Unit] +Description= +After=network.target + +[Service] + +ExecStart= +#ExecStop= +#Restart=on-failure + +Type=simple +# If main process exits after being run. +#Type=oneshot +#RemainAfterExit=yes + +#User= +#Group= +#UMask=027 + +[Install] +WantedBy=multi-user.target +~~~ + +Puis : + +~~~ +systemctl daemon-reload +systemctl enable --now +~~~ + + +### Créer et utiliser un template d'unité + +On peut créer et utiliser des template d'unité. Cela permet de gérer à la volée des instances de services. Par exemple pour _redis_ via `/etc/systemd/system/redis@.service`.