Aufbau der Dienstdatei Anhand der /etc/systemd/system/jobserver.service Datei.
[Unit]
Description=JobServer Service
After=network.target
Wants=network-online.target
[Service]
User=jobrouter
Group=jobrouter
SyslogIdentifier=JobServer
Environment="JOBROUTER_SERVICESCONFIGPATH=/etc/JobRouter"
Environment="XDG_CACHE_HOME=/tmp"
WorkingDirectory=/opt/JobRouter/JobServer/
ExecStart=/usr/share/dotnet/dotnet /opt/JobRouter/JobServer/JobServer.dll
Restart=always
Type=notify
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
[Unit]-Abschnitt
Der [Unit]-Abschnitt beschreibt grundlegende Eigenschaften des Dienstes, wann er gestartet wird und von welchen anderen Diensten er abhängig ist.
•Description=JobServer Service: Eine kurze Beschreibung des Dienstes. Dies wird in Systemprotokollen und beim Anzeigen des Dienststatus angezeigt.
•After=network.target: Bestimmt, dass der Dienst erst nach dem Start der Netzwerkdienste (network.target) ausgeführt wird.
•Wants=network-online.target: Signalisiert, dass der Dienst das Netzwerk benötigt, sobald es online ist, aber nicht zwingend darauf warten muss. Dies hilft sicherzustellen, dass der Dienst nur ausgeführt wird, wenn eine Netzwerkverbindung verfügbar ist.
[Service]-Abschnitt
Hier werden die Hauptkonfigurationen für den Dienst festgelegt, einschließlich des Benutzers, der den Dienst ausführt, und des Startbefehls.
•User=jobrouter und Group=jobrouter: Gibt an, dass der Dienst als Benutzer jobrouter und mit der Gruppe jobrouter ausgeführt wird. Dies beschränkt die Rechte des Dienstes und erhöht die Sicherheit.
•SyslogIdentifier=JobServer: Dieser Parameter gibt den Namen an, unter dem der Dienst Protokollnachrichten in den Systemprotokollen (Syslog) ablegt. Hier werden die Einträge als JobServer gekennzeichnet.
•Environment="JOBROUTER_SERVICESCONFIGPATH=/etc/JobRouter" und Environment="XDG_CACHE_HOME=/tmp": Legt Umgebungsvariablen fest, die für den Dienst verfügbar sind:
oJOBROUTER_SERVICESCONFIGPATH: Der Pfad zur Konfigurationsdatei des Dienstes.
oXDG_CACHE_HOME: Der Pfad, in dem Cache-Dateien gespeichert werden.
•WorkingDirectory=/opt/JobRouter/JobServer/: Das Arbeitsverzeichnis, in dem der Dienst ausgeführt wird. Dies ist der Ort, an dem der Dienst Dateien suchen und erstellen kann.
•ExecStart=/usr/share/dotnet/dotnet /opt/JobRouter/JobServer/JobServer.dll: Der Befehl zum Starten des Dienstes. Hier wird die .NET-Runtime verwendet, um die Datei JobServer.dll auszuführen.
•Restart=always: Der Dienst wird automatisch neu gestartet, falls er unerwartet beendet wird. Dies stellt sicher, dass der Dienst immer läuft.
•Type=notify: Der Diensttyp notify gibt an, dass der Dienst Systemd benachrichtigt, wenn er vollständig gestartet ist. Dies ist nützlich, um zu warten, bis der Dienst bereit ist.
•KillSignal=SIGINT: Gibt an, dass der Dienst mit dem Signal SIGINT (Interrupt) beendet werden soll, was dem Abbrechen mit „Strg+C“ entspricht.
[Install]-Abschnitt
Dieser Abschnitt definiert, wann und wie der Dienst gestartet wird.
•WantedBy=multi-user.target: Legt fest, dass der Dienst beim Hochfahren im „multi-user“-Modus (häufigster Betriebsmodus auf Servern) automatisch gestartet werden soll. Der multi-user.target entspricht einem Zustand ohne grafische Benutzeroberfläche und eignet sich für Serverdienste.