Aide-mémoire3 min de lecture · Mis à jour le 29 sept. 2026
systemd — aide-mémoire d'exploitation
Les commandes systemctl et journalctl indispensables, la structure d'une unité et les options de durcissement.
- #linux
- #troubleshooting
- #hardening
Cycle de vie d'un service
systemctl status nginx # état, PID, dernières lignes de journal
systemctl start|stop|restart nginx
systemctl reload nginx # relit la configuration sans couper
systemctl enable --now nginx # démarrage au boot + immédiat
systemctl is-active nginx; systemctl is-enabled nginx
systemctl list-units --failed
Journaux
journalctl -u nginx -n 100 --no-pager
journalctl -u nginx -f # suivi temps réel
journalctl -u nginx --since "10 min ago"
journalctl -p err -b # erreurs depuis le boot
journalctl --disk-usage; journalctl --vacuum-time=14d
Anatomie d'une unité
[Unit]
Description=API interne
After=network-online.target
Wants=network-online.target
[Service]
User=api
Group=api
WorkingDirectory=/opt/api
ExecStart=/opt/api/bin/server --port 8080
Restart=on-failure
RestartSec=5
EnvironmentFile=/etc/api/env
[Install]
WantedBy=multi-user.target
Après modification : systemctl daemon-reload. Pour surcharger une unité fournie par un paquet sans la modifier : systemctl edit nginx (crée un drop-in).
Durcissement recommandé
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes
ReadWritePaths=/var/lib/api
CapabilityBoundingSet=
UMask=0027
Mesurez l'exposition avec systemd-analyze security api.service.
Timers (remplaçants de cron)
systemctl list-timers
systemd-run --on-calendar="*-*-* 02:00" /usr/local/bin/backup.sh
Diagnostic rapide
| Symptôme | Commande |
|---|---|
| Service en échec au démarrage | journalctl -u svc -b puis systemctl cat svc |
| Boucle de redémarrage | systemctl show svc -p NRestarts |
| Démarrage lent | systemd-analyze blame |
| Dépendances | systemctl list-dependencies svc |