Ich habe den pimd
Dienst mittels installiert apt
. Dies kommt mit einer Upstream- systemd
Unit-Datei ( /lib/systemd/system/pimd.service
).
Ich möchte, dass der Dienst neu gestartet wird, wenn er aus irgendeinem Grund beendet wird. Daher möchte ich die Zeile Restart = always
in die Unit-Datei einfügen.
Ich möchte die Upstream-Unit-Datei jedoch nicht ändern.
Gibt es eine Problemumgehung dafür?
Antworten:
Sie haben zwei Möglichkeiten:
Kopieren Sie die Unit-Datei von
/lib/systemd/system/
nach/etc/systemd/system/
.Nehmen Sie dann Ihre Änderungen vor
/etc/systemd/system/pimd.service
, um die vom Paketverwalter bereitgestellten Einheitendateien vollständig zu überschreiben.Der Befehl
systemctl edit --full <service-name>
automatisiert dies für Sie.Sie können bestimmte Konfigurationseinstellungen für ein Gerät ändern oder hinzufügen, ohne Gerätedateien ändern zu müssen, indem Sie
.conf
Dateien in einem Drop-In-Verzeichnis/etc/systemd/system/<unit-name>.<unit-type>.d/
erstellen, dh ein
/etc/systemd/system/pimd.service.d/restart.conf
Der Befehl
systemctl edit <service-name>
führt diese Schritte für Sie aus.Sehen
man systemd.unit
quelle
systemctl edit <service-name>
systemctl edit --full <service-name>
.Die RHEL-Dokumentation empfiehlt zwei Möglichkeiten:
/etc/systemd/system/[name-goes-here].service.d/config_name.conf
In diesem Fall müsste die Datei etwa Folgendes enthalten:
Dies ist, was
systemctl edit [name-goes-here]
tut, es erstellt das Verzeichnis undoverride.conf
in ihm.Ich würde Option eins versuchen, aber beide sind praktikable Optionen. Denken Sie in jedem Fall daran,
systemctl daemon-reload
nach dem Vornehmen der Änderungen auszuführen .RHEL-Dokumentation zum Erstellen und Ändern von System-Unit-Dateien
quelle
Verwenden Sie ein Skript, um die Upstream-Konfiguration zu lesen, zu ändern und in eine Drop-In-Datei zu spucken.
Zum Beispiel verwende ich Chef und hier ist ein Stück Rubin (Bibliothek), das die Marathon-System-Unit-Datei analysiert, um den ursprünglichen ExecStart daraus zu erhalten
Dann erstelle ich im Rezept die Drop-In-Datei, um eine Option an ExecStart anzuhängen
quelle