
Introduction à la gestion des services avec `systemctl` (démarrer, arrêter, vérifier le statut)
Apprenez les bases de systemctl sous Linux pour démarrer, arrêter, et vérifier le statut des services. Essentiel pour l'administration système.
Maîtrisez `systemctl` : le chef d'orchestre de vos services Linux
Dans l'écosystème Linux moderne, la gestion des services (aussi appelés daemons ou démons) est une tâche fondamentale. Ces programmes s'exécutent en arrière-plan pour fournir des fonctionnalités essentielles, comme un serveur web (Nginx, Apache), une base de données, un service réseau (SSH), etc. La commande systemctl est l'interface principale pour interagir avec `systemd`, le système d'initialisation et gestionnaire de services utilisé par la majorité des distributions Linux actuelles (Debian, Ubuntu, Fedora, CentOS, Arch Linux, etc.). Comprendre systemctl est donc crucial pour administrer efficacement un système.
Ce sous-chapitre vous initiera aux commandes systemctl les plus courantes pour gérer le cycle de vie des services : vérifier leur état, les démarrer, les arrêter, et les redémarrer. Vous avez déjà eu un aperçu avec Nginx, nous allons maintenant formaliser ces opérations.
Vérifier le statut d'un service : la commande `status`
Avant toute action, il est souvent utile de connaître l'état actuel d'un service. La sous-commande status de systemctl est là pour ça. Elle vous donne des informations précieuses comme si le service est actif (en cours d'exécution), inactif, en échec, ainsi que les dernières lignes de log associées.
La syntaxe générale est :
sudo systemctl status nom_du_servicePar exemple, pour vérifier le statut du service Nginx (que vous avez installé précédemment) :
sudo systemctl status nginxOu pour le service SSH (généralement nommé sshd ou ssh) :
sudo systemctl status sshdL'output vous indiquera :
Loaded: Si l'unité de service est chargée.Active: L'état actuel (active (running),active (exited),inactive (dead),failed).Main PID: Le Process ID du processus principal du service.- Des lignes de logs récentes.
Appuyez sur q pour quitter l'affichage du statut.
Démarrer un service : la commande `start`
Si un service est arrêté (inactive (dead)) et que vous souhaitez le lancer, utilisez la sous-commande start. Cette action nécessite généralement des privilèges d'administration, d'où l'utilisation de sudo.
La syntaxe est :
sudo systemctl start nom_du_servicePar exemple, si Nginx était arrêté, pour le démarrer :
sudo systemctl start nginxAprès avoir lancé cette commande, il est bon de vérifier à nouveau le statut avec sudo systemctl status nginx pour confirmer que le service est bien passé à l'état active (running).
Arrêter un service : la commande `stop`
Pour arrêter un service en cours d'exécution, la sous-commande stop est utilisée. Cela terminera proprement le processus du service.
La syntaxe est :
sudo systemctl stop nom_du_servicePar exemple, pour arrêter Nginx :
sudo systemctl stop nginxEncore une fois, vérifiez le statut après l'arrêt pour vous assurer qu'il est bien inactive (dead).
Redémarrer un service : la commande `restart`
Souvent, après avoir modifié la configuration d'un service, il est nécessaire de le redémarrer pour que les changements prennent effet. La sous-commande restart effectue un arrêt suivi d'un démarrage du service.
La syntaxe est :
sudo systemctl restart nom_du_servicePar exemple, pour redémarrer Nginx :
sudo systemctl restart nginxCette commande est très pratique car elle combine deux actions en une seule. Il existe aussi reload qui, pour les services qui le supportent (comme Nginx), permet de recharger la configuration sans interrompre les connexions existantes (sudo systemctl reload nginx). C'est souvent préférable à restart si disponible et suffisant.
Activer et désactiver les services au démarrage : `enable` et `disable`
Les commandes ci-dessus affectent l'état actuel du service. Mais que se passe-t-il si vous redémarrez votre machine ? Un service démarré manuellement ne redémarrera pas forcément de lui-même.
Pour qu'un service se lance automatiquement au démarrage du système, il doit être "activé" (enabled).
sudo systemctl enable nom_du_servicePar exemple, pour que Nginx démarre avec le système :
sudo systemctl enable nginxInversement, pour empêcher un service de démarrer automatiquement :
sudo systemctl disable nom_du_servicePour vérifier si un service est activé au démarrage :
sudo systemctl is-enabled nom_du_serviceCette commande retournera enabled, disabled, static (ne peut être désactivé car requis par un autre service activé), ou d'autres états.
La maîtrise de ces quelques commandes systemctl (status, start, stop, restart, enable, disable) vous donne déjà un contrôle considérable sur les services de votre système Linux. C'est une compétence de base indispensable pour aller plus loin en administration.