Ich erstelle ein Konfigurationspaket und möchte Dienste stoppen und neu starten, deren Konfiguration betroffen ist. Im Moment bin ich mit der service [stop|restart]
in {pre,post}{inst,rm}
Art und Weise. Ich habe irgendwo eine Frage gelesen, invoke-rc.d
die der richtige Weg ist, weil sie die Benutzerpräferenzen für einen Dienst berücksichtigt. Ich konnte jedoch keine Richtlinien dazu finden. Kennt jemand solche Richtlinien? Oder haben Sie einen Rat, welchen Weg ich wählen soll? Das Paket ist für den internen Gebrauch bestimmt und wird voraussichtlich erst in den nächsten zwei Jahren für den 14.04. Ich möchte jedoch meinem Nachfolger einen möglichst sauberen Zustand hinterlassen, so denke systemd
ich auch.
Von der invoke-rc.d
Manpage :
Der gesamte Zugriff auf die Init-Skripte durch die Betreuer-Skripte der Debian-Pakete sollte über invoke-rc.d erfolgen .
Aus dem Debian Policy Manual, Kapitel 9, Abschnitt 3.3 :
Maintainer sollten die Abstraktionsschicht verwenden, die von den Programmen update-rc.d und invoke-rc.d bereitgestellt wird, um mit Initskripten in den Skripten ihrer Pakete wie postinst, prerm und postrm umzugehen.
...
Die Paketverwaltungsskripte müssen invoke-rc.d verwenden, um die Inetscripts /etc/init.d/* aufzurufen, anstatt sie direkt aufzurufen.
Debian hat verwendet sysv-init
und wird direkt zu wechseln systemd
, und ich nehme an , dass das Richtlinienhandbuch zu gegebener Zeit aktualisiert wird, um darauf zu verweisen systemctl
. Was ich jedoch unsicher bin, ist Folgendes: Soll ich invoke-rc.d
anstelle von verwenden service
? Ich kann sagen, dpkg
dass ich an einigen Dateien interessiert bin (über Trigger). Gibt es also eine Möglichkeit zu erkennen, dpkg
dass ich auch an einigen Diensten interessiert bin und dpkg
den Neustart / Neuladen durchführen kann?
Zur Verdeutlichung: Ich schreibe keine Init-Skripte. Ich stelle ein Paket mit Konfiguration für andere Anwendungen wie Puppet, NTP usw. bereit, daher stoppe ich die entsprechenden Dienste in den Skripten und starte sie neu.
Hier zum Beispiel ist eine Docker Ausgabe über invoke-rc.d
vs service
. Das Problem ist noch offen, und eine Person, wahrscheinlich ein Betreuer, kommentiert, dass sie definitiv daran interessiert sind, dies richtig zu machen - offensichtlich ist keiner von uns sicher, was das ist. (Meine Frage ist unabhängig von diesem Thema.)
invoke-rc.d
Manpage und die Debian-Richtliniendokumente weisen uns an, sie in Verbindung mit/etc/init.d/
Skripten zu verwenden (möglicherweise, weil sie noch sysv-init verwendet haben). Wie ändert sich das mit Upstart oder systemd?invoke-rc.d ... || service ...
Ein besserer Weg für systemd-Systeme ist die Verwendung von deb-systemd-invoke .
quelle
deb-systemd-invoke
.