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ômeCommande
Service en échec au démarragejournalctl -u svc -b puis systemctl cat svc
Boucle de redémarragesystemctl show svc -p NRestarts
Démarrage lentsystemd-analyze blame
Dépendancessystemctl list-dependencies svc