Skip to main content

5.3 - Gérer les services avec systemctl

Sur de nombreuses distributions, systemd démarre le système et gère les services. Une unité de service porte généralement un nom comme ssh.service ou nginx.service.

Examiner un service

systemctl status ssh
systemctl is-active ssh
systemctl is-enabled ssh
systemctl show ssh

Le nom peut être sshd au lieu de ssh selon la distribution :

systemctl list-unit-files --type=service | grep -i ssh

Démarrer, arrêter et recharger

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl reload-or-restart nginx

reload demande au service de relire sa configuration sans arrêt complet, s'il prend cette opération en charge. Après une modification, valider la syntaxe avant le rechargement :

sudo nginx -t && sudo systemctl reload nginx

Démarrage automatique

sudo systemctl enable nginx
sudo systemctl disable nginx
sudo systemctl enable --now nginx
sudo systemctl disable --now nginx

enable prépare le prochain démarrage mais ne lance pas forcément le service immédiatement. --now combine les deux actions.

Masquer un service

sudo systemctl mask nom.service
sudo systemctl unmask nom.service

mask empêche tout démarrage, même manuel ou demandé par une dépendance. À utiliser seulement lorsque cet effet est voulu.

État général

systemctl --failed
systemctl list-units --type=service --state=running
systemctl list-timers --all

Après modification d'une unité

sudo systemctl daemon-reload
sudo systemctl restart mon-service

daemon-reload est requis après modification d'un fichier .service, .timer ou d'une surcharge systemd ; il n'est pas nécessaire pour la configuration interne de l'application.

Créer une surcharge sans modifier le fichier fourni par le paquet :

sudo systemctl edit mon-service

Puis vérifier la configuration assemblée :

systemctl cat mon-service
systemd-analyze verify /etc/systemd/system/mon-service.service

Redémarrer ou éteindre

systemctl reboot
systemctl poweroff

Sur un serveur distant, confirmer qu'aucune opération de stockage ou mise à jour critique n'est en cours avant l'arrêt.