De manière générale, un service est un programme exécuté par le système en tâche de fond sans interactions directes avec l'utilisateur. Sur les systèmes de types *Unix on les désignes également daemons (dieux ou divinités).
systemd gère des unités. Différents types d'unité existent : service, mount, automount, path, target, timer, wants et socket. Ici on s’intéresse à l' unité de type service.
/usr/lib/systemd/system. Ils ne doivent pas être directement modifiés par l'administrateur (en cas de mises à jour les modifications locales pourraient être écrasés). Il existe des méthodes pour les redéfinir.
Pour définir un service, créer un fichier avec l'extension .service dans un des répertoires suivants :
/etc/systemd/system/ : pour un service s’exécutant au démarrage du système ;/etc/systemd/user/ : pour exécution du service à la connexion de tout utilisateur ;~/.config/systemd/user/ : pour exécution du service à la connexion d’un utilisateur spécifique.Le fichier unité de type service comporte 3 sections :
Unit : description du service et définition des prérequis ;Service : définit le type de service et ses actions ;Install : définit quand le service est utilisé (circonstances et déclencheurs).[Unit] Description= Before= After= ConditionPathExists= ConditionFileIsExecutable= [Service] Environment= Type= User= Group= WorkingDirectory= ExecStartPre= ExecStart= ExecStop= KillSignal= ExecStopPost= RemainAfterExit= Restart= RestartSec= [Install] WantedBy=
Après modification d'un fichier unité, lancer la relecture des fichiers de configuration de systemd :
systemctl --system daemon-reload
Pour activer le service :
systemctl enable --now example.service