Ce guide pratique montre comment maîtriser systemd pour gérer services, timers et journaux en production.
Les explications mêlent commandes, exemples concrets et retours d’expérience pour un usage immédiat et fiable, menant directement à des points essentiels.
A retenir :
- Bases des unités service, timer, target pour administrer Linux
- Planification fiable des tâches quotidiennes et événementielles sans crontab
- Diagnostiquer via journalctl pour des logs clairs et structurés
- Personnaliser et contrôler le redémarrage et la comptabilité des services
Le gestionnaire systemd et la gestion des services
Ayant vu les points essentiels, on commence par comprendre le rôle de systemd pour gérer les services et les unités système.
Systemd remplace les anciens scripts SysV et organise le démarrage, l’arrêt et le contrôle fin des démons et services sur la machine.
Démarrer, arrêter et activer des services avec systemctl
Pour appliquer la gestion des services, la commande centrale reste systemctl pour manipuler des unités de type service de manière explicite.
Les actions courantes incluent start, stop, restart, status et enable pour persister au démarrage, et is-active pour vérifier l’état actuel.
Commande
Action
Résultat attendu
Remarque
systemctl start ssh
Démarrer le service
Service actif
Pas de persistance après reboot
systemctl stop ssh
Arrêter le service
Service inactif
Utilisé pour maintenance
systemctl enable ssh
Activer au démarrage
Lien symbolique créé
Persistant
systemctl status ssh
Afficher l’état
Logs récents visibles
Permet le diagnostic
Points pratiques services :
- Vérifier state avant toute modification
- Utiliser mask pour bloquer démarrage manuel
- Privilégier enable over crontab pour persistance
- Relire les logs via journalctl après actions
« J’ai dépanné un serveur en repérant un service masqué puis en le démasquant pour le redémarrer correctement »
Alice D.
Selon documentation.suse.com, systemd conserve une compatibilité avec SysV tout en offrant des unités plus expressives pour le contrôle des services.
Ce cadre facilite la gestion centralisée des dépendances et prépare la mise en place de minuteries plus fines pour des tâches planifiées.
Comprendre systemd-timers : planifier des tâches avec systemd
Partant de la gestion des services, on élargit le propos vers la planification native fournie par systemd timers comme alternative moderne à cron.
Les timers déclenchent des unités service selon un calendrier ou un délai, offrant des options pour événements récurrents ou ponctuels.
Concevoir un timer : syntaxe et options OnCalendar
Pour créer un timer, on définit d’abord une unité .service puis une unité .timer associée avec la directive OnCalendar pour l’horaire.
Après création, enable et start du timer suffisent pour l’activer et contrôler son état via systemctl status sur le timer.
Directive
Usage
Exemple
Effet
OnCalendar
Calendrier temporel
*-*-* 18:00:00
Lance à heure fixe
OnBootSec
Délai après démarrage
10min
Lance après boot
OnUnitActiveSec
Intervalle relatif
24h
Répétition périodique
Persistent
Rattrapage d’événements
yes
Exécution manquée rattrapée
Points de configuration timers :
- Associer toujours une unité .service dédiée
- Tester OnCalendar en mode manuel avant enable
- Utiliser Persistent pour tâches critiques
- Surveiller triggers via systemctl list-timers
« J’ai remplacé des crontabs redondants par des timers pour centraliser la planification du backup »
Marc L.
Selon Stéphane ROBERT, les timers offrent des possibilités supérieures à cron pour gérer des scénarios événementiels complexes.
L’exemple du minuteur Iris montre comment lancer un service graphique à une heure précise, tout en évitant le démarrage au boot si non désiré.
Diagnostiquer avec journalctl et optimiser la comptabilité des services
Après l’automatisation, il devient essentiel d’interroger les journaux pour diagnostiquer et vérifier le comportement des unités gérées par systemd.
Journalctl offre des filtres puissants pour suivre des unités, suivre en temps réel ou parcourir les boots précédents d’un serveur.
Journalctl : commandes pratiques pour des LogsClairs
Pour des recherches ciblées, journalctl -u permet d’afficher les entrées d’une unité tandis que -f suit les logs en continu, utile pour le dépannage.
Afficher les logs du boot courant avec -b, ou du boot précédent avec -b -1, facilite l’analyse post-incident et le corrélat d’événements.
Option journalctl
Description
Usage typique
Résultat
-u UNIT
Filtre par unité
journalctl -u nginx
Logs unitaires
-f
Suivi en temps réel
journalctl -f
Streaming des logs
-b
Boot courant
journalctl -b
Entrées depuis boot
| grep
Recherche texte
journalctl | grep error
Filtre textuel
Conseils pratiques logs :
- Utiliser -u pour isoler le service fautif
- Coupler journalctl avec grep pour recherches rapides
- Redémarrer rsyslog si journaux manquent
- Archiver les logs critiques régulièrement
« En production, j’ai décelé une fuite mémoire en croisant les logs systemd et la comptabilité CPU des services »
Laura P.
Selon freedesktop.org, systemd expose aussi des métriques de comptabilité qui permettent d’observer CPU, mémoire et tâches par service.
Pour SysAdminPro et ServiceMaîtrise, activer la comptabilité rends possible la supervision fine et la limitation des ressources par unité.
« Mon avis : systemd reste incontournable pour qui veut des services simplifiés et une observabilité améliorée »
Paul N.
Source : Stéphane ROBERT, « Planification de tâches avec les timers systemd », ; Documentation SUSE, « Utilisation des minuteurs systemd », documentation.suse.com.
