La commande systemctl est l’outil central pour contrôler le système d’initialisation systemd, qui est désormais le standard sur la majorité des distributions linux (debian, ubuntu, centos, fedora). Elle permet de gérer les services, de vérifier leur état et de configurer le démarrage de la machine.
les concepts clés
avant d’entrer dans les commandes, il est utile de comprendre deux termes :
- unit (unité) : c’est n’importe quelle ressource que le système sait gérer (un service, un point de montage, un périphérique). les plus courants sont les
.service. - target (cible) : c’est un groupe d’unités qui définit l’état du système (ex: le mode multi-utilisateur ou le mode graphique).
1. gestion des services (unités)
ces commandes agissent immédiatement sur la session en cours.
| action | commande | description |
| démarrer | systemctl start [service] | lance le service immédiatement. |
| arrêter | systemctl stop [service] | coupe le service immédiatement. |
| redémarrer | systemctl restart [service] | arrête puis relance le service. |
| recharger | systemctl reload [service] | recharge la configuration sans couper le service. |
| statut | systemctl status [service] | affiche si le service tourne et les dernières logs. |
exemple :
2. gestion de l’activation au démarrage
ces commandes ne lancent pas le service tout de suite, elles configurent ce qui doit se passer au prochain boot.
- activer :
sudo systemctl enable [service]- crée un lien symbolique pour que le service se lance automatiquement au démarrage.
- désactiver :
sudo systemctl disable [service]- empêche le service de démarrer au prochain boot.
- masquer :
sudo systemctl mask [service]- rend le service impossible à démarrer, même manuellement ou par une dépendance.
3. inspection et filtrage
pour voir ce qui se passe sur votre serveur :
- lister les unités actives :
systemctl list-units - lister tous les services installés (actifs ou non) :
systemctl list-unit-files --type=service - vérifier si un service a échoué :
systemctl --failed
4. gestion du système (power management)
systemctl remplace aussi les anciennes commandes de gestion d’énergie.
exemples concrets d’utilisation
vérifier pourquoi un service ne démarre pas
si vous gérez un serveur web et qu’il tombe, la première étape est : systemctl status nginx si les informations sont incomplètes, vous pouvez coupler cela avec journalctl (le gestionnaire de logs de systemd) : journalctl -u nginx -e
automatiser un script maison
si vous créez un script de sauvegarde automatique, vous placerez un fichier .service dans /etc/systemd/system/, puis vous ferez : sudo systemctl daemon-reload (pour que le système lise le nouveau fichier) sudo systemctl enable ma-sauvegarde.service




