systemd: Dienste verwalten mit systemctl

systemd ist der Init-Daemon der meisten Linux-Distributionen. Dienste werden als Units beschrieben und mit systemctl verwaltet.

Wichtige Befehle

systemctl status nginx
systemctl start nginx
systemctl enable nginx      # Autostart
systemctl restart nginx
systemctl daemon-reload     # nach Unit-Änderungen

Unit-Datei

[Unit]
Description=Mein Dienst
After=network.target

[Service]
ExecStart=/usr/bin/mein-dienst
Restart=on-failure
User=www-data

[Install]
WantedBy=multi-user.target

Logs

journalctl -u nginx -f zeigt Live-Logs, journalctl --since today seit heute, journalctl -p err nur Fehler.

Häufige Probleme

  • Failed to start: systemctl status + journalctl -xe lesen.
  • Port belegt: ss -tlnp prüfen.
  • Permissions: User in der Unit prüfen.

Weiterführend: Systemadministration.