Wo vom Benutzer erstellte Systemd-Unit-Dateien abgelegt werden sollen

Wo vom Benutzer erstellte Systemd-Unit-Dateien abgelegt werden sollen

nginx.serviceWo soll ich die systemd-Datei beispielsweise für Nginx oder etwas Ähnliches unter Ubuntu 16.04 ablegen ?

Antwort1

Der empfohlene Ort ist/etc/systemd/system/nginx.service

Geben Sie dann den folgenden Befehl ein:

systemctl enable nginx

Und schlussendlich

systemctl start nginx

Antwort2

Normalerweise werden in Ubuntu die vom Paket bereitgestellten Unit-Dateien in /lib/systemd/system/das Verzeichnis eg gespeichert /lib/systemd/system/nginx.service, während die vom Benutzer bereitgestellten Unit-Dateien oder alle Änderungen an den vom Paket bereitgestellten Unit-Dateien in das /etc/systemd/system/Verzeichnis gespeichert werden.

Zum Überschreiben haben Sie nun folgende Möglichkeiten:

  • Benennen Sie die Unit-Datei wie die vom Paket bereitgestellte, z. B. um sie zu überschreiben. /lib/systemd/system/nginx.serviceSie können die Datei erstellen /etc/systemd/system/nginx.serviceund die Anweisungen dort einfügen.

  • Oder Sie können ein Drop-In-Snippet erstellen, das .confin einem Verzeichnis endet, das nach der ursprünglichen Unit-Datei benannt ist, wobei .dan den Verzeichnisnamen angehängt wird. Sie können beispielsweise eine Datei mit dem Namen erstellen /etc/systemd/system/nginx.service.d/override.confund dort Anweisungen einfügen.


Jetzt können Sie den Befehl nutzen, systemctl editum alle manuellen Aufgaben für Sie zu erledigen. Das heißt, er erstellt die erforderliche Override-Datei für Sie (zuerst erstellt er eine temporäre Datei (mit Zwischenverzeichnissen für Drop-In-Snippets) und beim Speichern wird rename()die temporäre Datei in die gewünschte endgültige Datei konvertiert. Sie müssen die Datei dann nur noch bearbeiten, um Ihre Overrides einzufügen.

So erstellen Sie beispielsweise ein Override-Snippet für das oben erwähnte ngnx.service( ):/lib/systemd/system/nginx.service

systemctl edit nginx.service

Standardmäßig wird die Datei verwendet /etc/systemd/system/nginx.service.d/override.conf. Wenn --fullverwendet wird, wird die vollständige Ersatzdatei /etc/systemd/system/nginx.serviceverwendet (der Originalinhalt /lib/systemd/system/nginx.servicewird in diese Datei kopiert).

Sie können auch --runtimezum Erstellen des Snippets verwenden /run/systemd/system/(zuerst das Drop-In-Snippet, dann das Ganze, sodass --runtimesich --fullbeide nicht gegenseitig ausschließen), das natürlich nur vorübergehend ist.

Sie können natürlich den zu verwendenden Editor auswählen. Die Rangfolge ist:

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

verwandte Informationen