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