Gérer les services système avec systemd
Contrôlez les programmes qui s’exécutent durablement sur un serveur Linux avec systemd : démarrez, arrêtez, activez et inspectez les services, lisez leurs journaux avec journalctl et comprenez la place des unités dans la gestion des processus.
Gérer les services système avec systemd est une leçon Linux Server Deployment & SSH Mastery gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Linux Server Deployment & SSH Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Services et processus ordinaires
Vous avez géré des processus individuels et des tâches planifiées. Mais les programmes qui définissent un serveur — serveurs web, bases de données, SSH — s’exécutent comme des services : des démons en arrière-plan qui devraient démarrer au lancement du système et redémarrer en cas d’échec.
Sur les systèmes Linux modernes, les services sont gérés par systemd, le gestionnaire du système et des services.
Ce que systemd gère
systemd organise tout en unités. Le type le plus courant est l’unité .service, qui décrit comment exécuter un démon.
La commande systemctl est votre interface principale pour inspecter et contrôler ces unités.
systemctl --versionVérifier l’état d’un service
systemctl status indique si un service est en cours d’exécution, l’ID de son processus principal, les lignes récentes de son journal et s’il est activé au démarrage.
C’est généralement la première commande à exécuter pour diagnostiquer un service.
systemctl status nginxDémarrer et arrêter des services
Vous contrôlez l’état d’exécution d’un service avec start, stop et restart. Ces commandes prennent effet immédiatement, mais ne modifient pas le comportement au démarrage.
Utilisez reload lorsqu’un service prend en charge la relecture de sa configuration sans interrompre les connexions.
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginxActiver des services au démarrage
enable fait démarrer automatiquement un service lorsque le serveur démarre ; disable le retire du démarrage. Cela est indépendant du fait qu’il soit actuellement en cours d’exécution.
La pratique option --now active et démarre le service en une seule étape.
sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginxLister les services
Pour voir ce qui est installé et en cours d’exécution, listez les fichiers d’unités ou les unités actives.
list-units --type=service— services actuellement chargéslist-unit-files --type=service— tous les services installés et leur état d’activation
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=serviceLire les journaux avec journalctl
systemd capture la sortie des services dans le journal. Interrogez-le avec journalctl.
-u nginx— uniquement ce service-f— suivre en direct-e— aller à la fin
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'Anatomie d’un fichier d’unité
Un service est défini par un fichier d’unité, généralement situé dans /etc/systemd/system/ ou /lib/systemd/system/. Il comporte trois sections essentielles : [Unit], [Service] et [Install].
La ligne ExecStart indique à systemd quelle commande exécuter.
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure
[Install]
WantedBy=multi-user.targetCréer votre propre service
Pour exécuter votre propre programme comme un service, placez un fichier d’unité dans /etc/systemd/system/, rechargez systemd pour qu’il détecte le nouveau fichier, puis activez et démarrez le service.
daemon-reload est requis après toute modification d’un fichier d’unité.
sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myappRedémarrage automatique en cas d’échec
L’une des meilleures fonctionnalités de systemd est la récupération automatique. La directive Restart= lui indique de relancer un service qui s’est arrêté brutalement.
Restart=on-failure— uniquement après une sortie différente de zéroRestart=always— chaque fois qu’il s’arrêteRestartSec=5— attendre avant de réessayer
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5Bonnes pratiques
Gérez vos services en toute confiance :
- Faites la distinction entre l’exécution (
start) et le démarrage (enable) - Exécutez
daemon-reloadaprès avoir modifié des fichiers d’unités - Utilisez
journalctl -upour le diagnostic plutôt que des fichiers de journaux dispersés - Ajoutez
Restart=on-failurepour rendre vos applications personnalisées plus robustes
Vérification rapide
Testez vos connaissances sur systemd.
Récapitulatif
Vous pouvez désormais gérer les services d’un serveur avec systemd :
status,start,stop,restart,reloadenable/disablepour le comportement au démarragejournalctl -upour les journaux des services- Fichiers d’unités
.servicepersonnalisés avecRestart=pour améliorer la robustesse
Vous complétez ainsi vos compétences en gestion des processus et des tâches avec les démons de longue durée.
Questions Fréquemment Posées
La leçon « Gérer les services système avec systemd » est-elle gratuite ?
Oui — le texte complet de « Gérer les services système avec systemd » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Linux Server Deployment & SSH Mastery, passe à CoddyKit PRO. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Gérer les services système avec systemd » ?
Contrôlez les programmes qui s’exécutent durablement sur un serveur Linux avec systemd : démarrez, arrêtez, activez et inspectez les services, lisez leurs journaux avec journalctl et comprenez la pla… Tu pratiques Linux Server Deployment & SSH Mastery avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Linux Server Deployment & SSH Mastery ?
Aucune expérience préalable n'est requise. Linux Server Deployment & SSH Mastery sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Gérer les services système avec systemd » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Linux Server Deployment & SSH Mastery ?
Oui. Chaque leçon Linux Server Deployment & SSH Mastery inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Gérer les utilisateurs et les groupes
- Surveiller les processus système
- Tâches planifiées avec Cron
- Gérer les services système avec systemd