Einführung

Systemd ist ein leistungsfähiges Init-System, das von den meisten modernen Linux-Distributionen zur Verwaltung von System- und Dienstprozessen verwendet wird. Eine seiner wichtigsten Funktionen ist die Möglichkeit, Dienste beim Booten automatisch zu starten. Dieser Artikel führt Sie durch den Prozess der Konfiguration eines Dienstes, der beim Booten mit Systemd gestartet wird, um sicherzustellen, dass Ihre wichtigen Anwendungen bei jedem Neustart des Systems zuverlässig laufen.

Systemd-Dienste verstehen

Systemd verwendet Unit-Dateien, um Dienste zu definieren und zu verwalten. Diese Unit-Dateien werden gespeichert in:

  • Systemweite Dienste: /etc/systemd/system/ und /lib/systemd/system/
  • Benutzerspezifische Dienste: ~/.config/systemd/user/

Eine Diensteinheitendatei hat normalerweise die Erweiterung .service und enthält Konfigurationsanweisungen, die Systemd mitteilen, wie der Dienst zu verwalten ist.

Erstellen einer Systemd-Dienstdatei

Um einen Dienst so zu konfigurieren, dass er beim Booten gestartet wird, müssen Sie eine Systemd-Dienstdatei erstellen. Hier ist ein Beispiel, wie man einen benutzerdefinierten Dienst erstellt.

1. Erstellen der Servicedatei

Führen Sie den folgenden Befehl aus, um eine neue Servicedatei in einem Texteditor zu öffnen:

sudo nano /etc/systemd/system/myservice.service

2. Definieren Sie die Dienstkonfiguration

Fügen Sie den folgenden Inhalt hinzu und ändern Sie ihn entsprechend Ihrer Anwendung:

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/

[Install]
WantedBy=multi-user.target

Erläuterung:

  • Nach=Netzwerk.Ziel: Stellt sicher, dass der Dienst startet, nachdem das Netzwerk verfügbar ist.
  • ExecStart=/usr/bin/myapp: Legt den Befehl zum Starten des Dienstes fest.
  • Restart=always: Stellt sicher, dass der Dienst im Fehlerfall neu gestartet wird.
  • User=myuser und Group=mygroup: Führt den Dienst unter einem bestimmten Benutzer und einer bestimmten Gruppe aus.
  • WantedBy=multi-user.target: Stellt sicher, dass der Dienst im Mehrbenutzermodus gestartet wird (Standard-Runlevel für die meisten Server).

3. Neu laden von Systemd und Aktivieren des Dienstes

Sobald die Dienstdatei erstellt ist, laden Sie Systemd neu, damit der neue Dienst erkannt wird:

sudo systemctl daemon-reload

Aktivieren Sie den Dienst, damit er beim Booten startet:

sudo systemctl enable myservice.service

4. Starten und Überprüfen des Dienstes

Starten Sie den Dienst manuell:

sudo systemctl start myservice.service

Überprüfen Sie den Status des Dienstes:

sudo systemctl status myservice.service

Wenn alles richtig konfiguriert ist, sollten Sie eine Ausgabe sehen, die anzeigt, dass der Dienst läuft.

Verwalten des Dienstes

Hier finden Sie einige nützliche Befehle zur Verwaltung Ihres Systemd-Dienstes:

  • Starten Sie den Dienst neu:
    sudo systemctl restart myservice.service
  • Stoppen Sie den Dienst:
    sudo systemctl stop myservice.service
  • Deaktivieren Sie, dass der Dienst beim Booten startet:
    sudo systemctl disable myservice.service
  • Zeigen Sie die Protokolle für den Dienst an:
    journalctl -u myservice.service --no-pager

Fazit

Die Verwendung von Systemd zum Starten von Diensten beim Booten ist eine einfache und effektive Methode, um sicherzustellen, dass kritische Anwendungen nach einem Systemneustart weiterlaufen. Wenn Sie eine Systemd-Dienstdatei richtig konfigurieren, sie beim Booten aktivieren und mit systemctl verwalten, können Sie die Zuverlässigkeit und Automatisierung Ihrer Linux-Umgebung verbessern.