:PROPERTIES:
:ID:       af912c20-4752-44ba-bdc0-99451ac0cd10
:mtime:    20220130135731
:ctime:    20220117184604
:END:
#+title: systemd
#+filetags: :Linux:

* Introduction
 * Suite logicielle qui fournit une gamme de composants système pour les systèmes d'exploitation Linux :
   * Système d'initialisation gérant les dépendances entre services et démarrage en parallèle,
 * Alternative à sysV init.
 * Ré-écriture de daemon et utilitaires.

#+DOWNLOADED: https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Composants_systemd.svg/640px-Composants_systemd.svg.png @ 2022-01-17 19:53:24
#+CAPTION: Par Claudelepoisson — Ce fichier est dérivé de : Systemd components.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=28846333
[[file:Introduction/640px-Composants_systemd.svg_2022-01-17_19-53-24.png]]


* Tips
** Déclencher le démarrage d'une /unit/ une fois une @IP obtenue sur une interface
 * Ajouter les contraintes suivantes à l'/unit/ à déclencher :
#+BEGIN_SRC shell
[Unit]
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service
#+END_SRC
 * Configurer l'/unit/ ~systemd-networkd-wait-online.service~ de manière à terminer uniquement lorsqu'une interface a
   obtenu une @IP (état ~routable~) :
#+BEGIN_SRC shell
mkdir /etc/systemd/system/systemd-networkd-wait-online.service.d/
cat >/etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf  << EOF
[Service]
ExecStart=/lib/systemd/systemd-networkd-wait-online -i <interface>:routable
EOF
systemctl enable systemd-networkd-wait-online.service
#+END_SRC
** Vérifier qu'un service est en cours d'exécution
#+BEGIN_SRC shell
systemctl is-active --quiet systemd-networkd.service && echo Service is running
#+END_SRC

#+RESULTS:
: Service is running

* Références
 * [[https://fr.wikipedia.org/wiki/Systemd][Wikipedia]]
 * [[https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html][man systemd-networkd-wait-online.service]]
