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.service2. 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.targetErlä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=myuserundGroup=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-reloadAktivieren Sie den Dienst, damit er beim Booten startet:
sudo systemctl enable myservice.service4. 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.serviceWenn 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.


