Introduction
systemd est un système d’initialisation et un gestionnaire de services pour les distributions Linux modernes, y compris Debian et Ubuntu. Il est conçu pour être rétrocompatible avec les scripts SysV init et offre des fonctionnalités avancées pour la gestion des services, des périphériques, des points de montage, etc. Dans cet article, nous allons explorer comment utiliser systemd pour gérer les services sur Debian et Ubuntu, avec des exemples de configuration et d’utilisation de la commande systemctl.
Qu’est-ce que systemd ?
systemd est un ensemble de démons de gestion de système qui agit comme un remplacement pour le système d’initialisation SysV init. Il est responsable du démarrage des services système au démarrage et de leur gestion pendant l’exécution du système. systemd utilise des unités de service, qui sont des fichiers de configuration décrivant comment un service doit être démarré, arrêté et géré.
Utilisation de systemctl
La commande systemctl est l’outil principal pour interagir avec systemd. Elle permet de démarrer, arrêter, redémarrer, activer et désactiver des services, ainsi que de vérifier leur statut.
Commandes de base
Voici quelques commandes de base pour gérer les services avec systemctl :
-
Démarrer un service :
sudo systemctl start nom_du_service -
Arrêter un service :
sudo systemctl stop nom_du_service -
Redémarrer un service :
sudo systemctl restart nom_du_service -
Recharger un service (sans redémarrage complet) :
sudo systemctl reload nom_du_service -
Activer un service (pour qu’il démarre au boot) :
sudo systemctl enable nom_du_service -
Désactiver un service (pour qu’il ne démarre pas au boot) :
sudo systemctl disable nom_du_service -
Vérifier le statut d’un service :
sudo systemctl status nom_du_service
Exemple pratique
Prenons l’exemple d’un service Apache (httpd) sur une distribution Debian ou Ubuntu.
-
Démarrer le service Apache :
sudo systemctl start apache2 -
Activer le service Apache pour qu’il démarre au boot :
sudo systemctl enable apache2 -
Vérifier le statut du service Apache :
sudo systemctl status apache2Cela affichera des informations détaillées sur l’état du service, y compris s’il est actif, chargé et s’il y a eu des erreurs récentes.
Configuration des services
Les fichiers de configuration des services systemd sont généralement situés dans le répertoire /etc/systemd/system/ ou /lib/systemd/system/. Ces fichiers ont une extension .service et utilisent un format de configuration spécifique.
Exemple de fichier de service
Voici un exemple de fichier de service pour un service personnalisé appelé mon_service.service :
[Unit]Description=Mon Service PersonnaliséAfter=network.target[Service]ExecStart=/usr/bin/mon_scriptRestart=alwaysUser=mon_utilisateurGroup=mon_groupeEnvironment=VARIABLE_ENV=valeur[Install]WantedBy=multi-user.target
- Section [Unit] : Contient des métadonnées sur le service et ses dépendances.
- Section [Service] : Définit comment le service doit être démarré et géré.
- Section [Install] : Spécifie comment le service doit être activé.
Recharger systemd après modification
Après avoir modifié un fichier de service, il est nécessaire de recharger la configuration de systemd pour que les changements prennent effet :
sudo systemctl daemon-reload