service force-reload

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

service force-reload

Beitrag von inne » 22.01.2022 17:39:38

Hallo,

wenn ein service force-reload nicht tut, ist das dann ein Bug oder muss force-reload nicht gegeben sein, ein reload tut?

MfG,

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: service force-reload

Beitrag von JTH » 22.01.2022 18:03:17

Vorweg: Der Fokus, wie sich Dienste verhalten sollen, liegt wahrscheinlich inzwischen mehr auf dem Verhalten von per systemd-Unit verwalteten Diensten. Dazu kannst du dir vielleicht noch ExecStart= angucken.

Die Debian-Policy erwähnt aber weiter das Verhalten von Initskripten: Demnach sollen start, stop, restart und force-reload unterstützt sein – müssen es aber nicht. Siehe dazu auch diesen Bugreport: „init scripts "should" support start/stop/restart/force-reload - why not "must"?“ (Debian Bugreport491318). Es gibt/gab wohl vereinzelte Initskripte, die keinen klassischen Dienst gestartet haben, sondern z.B. nur Sachen beim Boot aufgesetzt und wo dann ein stop oder reload unsinnig wäre.

Nachtrag: Auch die LSB sagt „start, stop, restart, force-reload, and status actions shall be supported“. Ich hab zwar dort keine Beschreibung der angenommenen Definition von „shall“ gefunden, die es in solchen Dokumenten häufig gibt. Aber ich denke mal, bei strenger Voraussetzung würde dort „must“ stehen. Die LSB beschreibt auch vorgesehene Exit-Codes für Initskripte, auch wenn eine Aktion nicht implementiert ist:
https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html hat geschrieben: In case of an error while processing any init-script action except for status, the init script shall print an error message and exit with a non-zero status code:

[…]
3 unimplemented feature (for example, "reload")
Zuletzt geändert von JTH am 22.01.2022 18:12:37, insgesamt 1-mal geändert.
Grund: Nachtrag LSB
Manchmal bekannt als Just (another) Terminal Hacker.

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: service force-reload

Beitrag von inne » 22.01.2022 18:27:22

Also laut LSB ist dann ein fehlendes force-reload aber schon ein Fehler?
Oder sollte ich besser nur mit stop und (&&) start arbeiten, wenn ich die Konfig geändert habe?
Ich habe hier etwas selbst geskriptet, deshalb die Frage.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: service force-reload

Beitrag von JTH » 22.01.2022 18:40:40

inne hat geschrieben: ↑ zum Beitrag ↑
22.01.2022 18:27:22
Also laut LSB ist dann ein fehlendes force-reload aber schon ein Fehler?
Ich lese die Formulierungen der Debian-Policy und der LSB da gleich. Und beide sagen meinem Verständnis nach, dass force-reload unterstützt sein sollte, nicht muss – solange es für die Anwendung sinnvoll ist. Und jein, ein Fehler ist es nur in dem Sinne, dass du einen Exit-Code != 0 zurückgeben solltest, um die fehlende Unterstützung dieser Aktion zu signalisieren. Aber kein Fehler während der Ausführung des Initskripts an sich.

inne hat geschrieben: ↑ zum Beitrag ↑
22.01.2022 18:27:22
Oder sollte ich besser nur mit stop und (&&) start arbeiten, wenn ich die Konfig geändert habe?
Je nach dem, wie du möchtest. Beide Quellen sagen ja explizit, dass ein force-reload als restart, also quasi Kombination aus stop und start, implementiert sein darf (wenn mans sich vielleicht einfach machen möchte oder ein reload „im laufenden Betrieb“ nicht sinnvoll umsetzbar ist).
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten