Cheatsheets

Cheatsheet: systemd

Diensten, logboeken en timers beheren op moderne Linux-systemen (Debian, Ubuntu, Fedora, Raspberry Pi OS en andere).

Diensten

De status van een dienst systemctl status naam
Starten sudo systemctl start naam
Stoppen sudo systemctl stop naam
Herstarten sudo systemctl restart naam
De instellingen opnieuw inlezen zonder herstart sudo systemctl reload naam
Bij het opstarten laten starten sudo systemctl enable naam
Niet meer automatisch starten sudo systemctl disable naam
Nu starten én automatisch laten starten sudo systemctl enable --now naam
Draait hij? systemctl is-active naam
Start hij bij het opstarten? systemctl is-enabled naam

Overzichten

Alle diensten die draaien systemctl list-units --type=service --state=running
Mislukte diensten systemctl --failed
Alle geïnstalleerde dienstbestanden systemctl list-unit-files --type=service
Het dienstbestand tonen systemctl cat naam
Wat start er langzaam bij het opstarten? systemd-analyze blame

Eigen of aangepaste diensten

Een dienst veilig aanpassen (override) sudo systemctl edit naam
Na het wijzigen van een bestand: inlezen sudo systemctl daemon-reload
Een eigen dienstbestand maken sudo nano /etc/systemd/system/mijndienst.service
Diensten van je eigen gebruiker systemctl --user status naam

Logboeken (journalctl)

Logboek van een dienst journalctl -u naam
Meelezen journalctl -u naam -f
Alleen sinds deze start journalctl -b
Het afgelopen uur journalctl --since "1 hour ago"
Alleen fouten journalctl -p err -b
Hoeveel ruimte gebruikt het logboek? journalctl --disk-usage
Logboeken ouder dan 7 dagen opruimen sudo journalctl --vacuum-time=7d

Timers (vervanger van cron)

Alle timers met de volgende keer systemctl list-timers
Een timer inschakelen sudo systemctl enable --now naam.timer

Systeem

Herstarten sudo systemctl reboot
Uitzetten sudo systemctl poweroff

Goed om te weten

  • Een minimaal dienstbestand (/etc/systemd/system/mijndienst.service): [Unit] met Description=Mijn dienst en After=network.target; [Service] met ExecStart=/pad/naar/programma, Restart=on-failure en User=gebruiker; [Install] met WantedBy=multi-user.target. Daarna daemon-reload en enable --now.
  • Wijzig nooit bestanden in /lib/systemd/system of /usr/lib/systemd/system: ze worden bij updates overschreven. Gebruik systemctl edit.

Bronnen en bronvermelding

Dit overzicht is in eigen woorden samengesteld. Commando’s en opties veranderen per versie: controleer bij twijfel de officiële documentatie.