Les services
76
● systemd est le logiciel qui
C’est quoi un service initialise le système
d'exploitation au démarrage
(dont le fameux processus init
fait partie) et qui démarre et
● Un service est un programme qui pilote les différents services
s'exécute en arrière-plan, de la machine.
plutôt contrôlé par le système
● Les services sont gérés par
d'exploitation que par
Systemd, qui les démarre et les
l'utilisateur directement.
○ Aussi appelé “daemon”
arrête en fonction du besoin.
○ Souvent avec un nom qui se ● Dans le cas d'un serveur, il
termine par “d” (ex. sshd, arrive que l'on ajoute des
mysqld …) services à la machine (par
● La plupart des logiciels exemple un serveur web, ou un
fonctionnent en mode serveur ont SGBD) et qu'il soit nécessaire
besoin d’installer un service de les piloter avec systemctl.
77
● Pour lister les services (en tant
que root):
Etats d’un service $ systemctl list-units --type service
On peut manipuler les services avec
les commandes suivantes :
● Les services ont des états : ● systemctl start [service_name] pour
○ Enabled : en cours démarrer un service stoppé
d'exécution. Aucun ● sudo systemctl stop [service_name] pour
problème. stopper un service
○ Disabled : non actif, ● systemctl restart [service_name] pour
peut être démarré à tout redémarrer un service, cela revient
moment. à faire un stop puis un start
○ Masked : ne fonctionnera que si
nous lui enlevons cette ● systemctl reload [service_name] pour
propriété. demander à un service de recharger
○ Static : ne sera utilisé qu'au
cas où un autre service en
sa configuration sans s'arrêter
aurait besoin. ● systemctl status [service_name] pour vérifier l’
état d’un service
● systemctl enable [service_name] pour que le
service soit démarré au démarrage du système
● systemctl disable [service_name] pour qu’il ne 78
soit pas lancé au démarrage
Configuration d’un service
● Les fichiers de configuration sont stockés dans
/lib/systemd/system/
● On peut l’éditer en utilisant la commande
suivante :
○ sudo systemctl edit [Link]
● Le fichier du service stocke le nom,
description, l’emplacement du fichier de
configuration, les commandes à utiliser pour
démarrer ou arrêter le service, et bien d’autres
paramètres du service.
● Pour créer un nouveau service, il faut créer son
fichier /lib/systemd/system/ puis exécuter les
commandes suivantes :
○ systemctl daemon-reload
○ systemctl enable [Link]
○ systemctl start [Link] 79
La trace des services
● L’exécution des daemons est enregistrée dans les journaux
systèmes.
● Lorsqu’un service ne s’exécute pas correctement, on peut
consulter les journaux pour obtenir des informations.
● La commande journalctl sert à consulter les journaux
(logs) systemd.
● Pour avoir la fin du journal systemd, il faut utiliser la
commande journalctl suivante :
○ journalctl -xe
80
1. Vérifier les services
existants sur votre
système et leurs états
2. Vérifier le fichier de
TD/TP 7
configuration d’un
service existant.
3. Vous avez une application
NodeJS que vous souhaitez
lancer comme daemon.
Créez le fichier du
service et lancez-le.
81