Les services permettent de répondre à des requêtes du système face aux demandes des usagers. Un service est un programme qui s’exécute en arrière-plan, sans interaction directe avec l’utilisateur afin de gérer des tâches système ou applicatives (Web, BD, réseau, etc). Ils sont habituellement lancés au démarrage et sont gérés par une application comme systemctl et fonctionnent continuellement (jusqu’à ce qu’on les arrête).
Les principales caractéristiques des services sont:
systemctl).Différents système de gestion des services sont utilisés par les distributions GNU/Linux. Par exemple :
SysVinit est le classique système de démarrage et de gestion des services qui a été utilisé jusqu’à Fedora 8.
UpStart a remplacé SysVinit dans Fedora 9, jusqu’à Fedora 14.
systemd prend maintenant place dans la plupart des distributions dont la distribution Linux AlmaLinux.
SysVinit et Upstart ont une notion de niveau d’exécution (RunLevel). systemd a une notion de cible (target).
Sans enter plus dans les détails, à un niveau d’exécution ou une cible correspond un mode de fonctionnement du système où certains services sont arrêtés tandis que d’autres sont lancés.
Le tableau ci-dessous décrits les différents modes de fonctionnement standard. (tel que nous l’avons vu dans la section sur la séquence de boot du chapitre 2):
| Cibles systemd | Utilité |
|---|---|
poweroff ou runlevel 0 |
Arrêt du système |
rescue ou runlevel 1 |
Mode utilisateur unique, mode de maintenance |
multi-user ou runlevel3 |
Mode multi-utilisateur non graphique |
graphical ou runlevel5 |
Mode multi-utilisateur graphique |
reboot ou runlevel6 |
Redémarrage du système |
emergency |
shell d’urgence |
Dans cette section, nous allons voir comment (dans la ligne de commande - shell) :
systemctl isolate CIBLE ou systemctl isolate CIBLE.target
Par exemple :
systemctl isolate multi-user ou
systemctl isolate runlevel3, pour passer
en mode multi-utilisateur console (non-graphique).systemctl isolate graphical ou
systemctl isolate runlevel5, pour passer
en mode multi-utilisateur graphique.systemctl set-default CIBLE ou systemctl set-default CIBLE.target
Par exemple :
systemctl set-default multi-user ou
systemctl set-default runlevel3, pour passer
en mode multi-utilisateur console (non-graphique) par défaut.systemctl set-default graphical ou
systemctl set-default runlevel5, pour passer
en mode multi-utilisateur graphique par défaut.systemctl start NOM
Par exemple :
systemctl start sshd ou systemctl start sshd.service
pour démarrer le service sshd (service ssh serveur).Le lancement d’un service permet de démarrer le service immédiatement, mais n’est pas suffisant pour qu’il soit redémarré au prochain lancement du système. Si on veut que le service soit démarré à chaque lancement du système on doit l’activer (voir plus loin).
systemctl stop NOM
Par exemple :
systemctl stop sshd ou systemctl stop sshd.service
pour arrêter le service sshd (service ssh serveur).L’arrêt d’un service permet de stopper le service immédiatement, mais n’est pas suffisant pour qu’il ne soit pas redémarré au prochain lancement du système. Si on veut que le service ne soit pas démarré à chaque lancement du système on doit le désactiver (voir plus loin).
systemctl enable NOM
Par exemple :
systemctl enable sshd ou systemctl enable sshd.service
pour démarrer automatiquement le service sshd (service ssh serveur) au lancement du système.Au moment où on enregistre l’activation du service, le service n’est pas immédiatement démarré, alors il faut en plus le démarrer. L’activation n’affecte que le démarrage automaituqe du service pour les prochains lancements du système.
systemctl disable NOM
Par exemple :
systemctl disable sshd ou systemctl disable sshd.service
pour annuler le démarrage automatique du service sshd (service ssh serveur) au lancement du système.Au moment où on enregistre la désactivation du service, le service n’est pas immédiatement arrêté, alors il faut en plus l’arrêter. La désactivation n’affecte que le non démarrage du service pour les prochains lancements du système.
systemctl status NOM
Par exemple :
systemctl status sshd ou systemctl status sshd.service
pour vérifier l’état du service sshd (service ssh serveur).systemctl is-enabled sshd ou systemctl is-enabled sshd.service
pour vérifier l’état du démarrage automatique du service sshd (service ssh serveur) au lancement du système.Exemples:
# systemctl status sshd
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Wed 2026... 13:11:55 EST; 4h 46min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1012 (sshd)
Tasks: 1 (limit: 22775)
Memory: 3.2M (peak: 3.4M)
CPU: 20ms
CGroup: /system.slice/sshd.service
└─1012 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Deux informations importantes disponibles avec l’option status:
# systemctl status sshd
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; preset: enabled)
Active: inactive (dead)
Docs: man:sshd(8)
man:sshd_config(5)
Deux informations importantes disponibles avec l’option status: