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.