Linux · Services systemd

Services systemd

Pilotez les services systemd et diagnostiquez une unité qui ne démarre pas correctement.

Leçon disponible
20 min

Objectifs

  • Comprendre systemd, les unités et les services.
  • Démarrer, arrêter et redémarrer un service avec systemctl.
  • Distinguer l’état courant du démarrage automatique.
  • Associer systemctl et journalctl dans un diagnostic.

Administrer les services avec systemd

systemd est le gestionnaire de système et de services utilisé par de nombreuses distributions modernes. Il gère des unités : services, sockets, montages, timers et autres ressources.

Une unité de type service décrit comment lancer et surveiller un processus de fond. systemctl envoie les demandes à systemd et affiche l’état connu de l’unité.

Consulter l’état courant

status fournit un résumé détaillé. is-active répond sur l’exécution actuelle ; is-enabled indique si l’unité est configurée pour démarrer automatiquement selon ses dépendances d’activation.

Vérifier l’état et l’activation de nginx
systemctl status nginx
systemctl is-active nginx
systemctl is-enabled nginx

Démarrer, arrêter et redémarrer

start lance le service maintenant, stop l’arrête et restart effectue un arrêt suivi d’un démarrage. Ces opérations système nécessitent généralement sudo.

Contrôler le cycle de vie de nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

Différence entre start et enable

start agit sur la session en cours mais ne configure pas le prochain démarrage. enable crée la configuration d’activation pour les prochains boots, sans garantir que le service démarre immédiatement.

Configurer ou retirer le démarrage automatique
sudo systemctl enable nginx
sudo systemctl disable nginx

Si vous voulez à la fois activer et démarrer une unité, vérifiez les options documentées de votre version de systemctl ; garder les deux concepts séparés aide à comprendre le résultat.

Exemple pratique : un service ne démarre pas

Commencez par l’état, puis consultez le journal de l’unité. Le message d’erreur peut révéler une configuration invalide, un port déjà occupé, un fichier absent ou des permissions insuffisantes.

Diagnostic initial de nginx
systemctl status nginx
journalctl -u nginx
systemctl is-enabled nginx

systemd n’est pas forcément le processus d’initialisation dans un conteneur, une distribution WSL ou un système minimal. Dans ce cas, systemctl peut être indisponible même si le logiciel existe.

Bonnes pratiques

Lisez l’erreur avant de relancer en boucle. Après une correction, vérifiez à nouveau status et les dernières lignes du journal, puis confirmez que le service écoute réellement sur le port attendu.

  • Utiliser le nom exact de l’unité, par exemple nginx.service si nécessaire.
  • Valider la configuration de l’application avant un restart lorsque l’outil le permet.
  • Ne pas confondre service actif et service activé au démarrage.

Mini résumé

  • systemd gère des unités, dont les unités de type service.
  • start, stop et restart agissent sur l’état courant.
  • enable et disable configurent le démarrage automatique.
  • systemctl status et journalctl -u forment la base du diagnostic.

Mini quiz

Trois questions pour vérifier les notions essentielles de la leçon.

1. Qu’est-ce qu’une unité systemd ?
2. nginx doit fonctionner maintenant et après le prochain redémarrage. Quels concepts vérifiez-vous ?
3. Un service échoue au démarrage. Quelle première séquence est la plus informative ?