André Majorel:
Do you think the following would work on any Debian system, regardless
of its current run level and choice of init system ?
1. run invoke-rc.d daemon-package stop
2. update config file
3. run invoke-rc.d daemon-package start
Don't use invoke-rc.d yourself. The *old pre-systemd* Debian Policy
Manual vaguely and indirectly warns against it; my proposed revised
systemd-aware Debian Policy Manual explicitly warns against it, based
upon discussions during the Debian systemd Hoo-Hah; the manual page for
my invoke-rc.d shim warns against it; even the Debian/Ubuntu manual page
indirectly explains what it is not for. It is for a very particular
need. It is not for general service management tasks by a system
administrator. Use the "service" command.
* https://www.debian.org/doc/debian-policy/ch-opersys.html#s9.3.3
* https://jdebp.eu./Proposals/DebianPolicy/ch-opersys.html#s-sysvrc
*
https://jdebp.eu./Proposals/DebianPolicy/ch-opersys.html#s-systemdandupstartandrc
* https://jdebp.eu./Proposals/DebianPolicy/ch-opersys.html#s9.3.1.2
* https://jdebp.eu./Softwares/nosh/guide/invoke-rc.d.html
* http://manpages.ubuntu.com./manpages/xenial/man8/invoke-rc.d.8.html
Don't use "stop" followed by "start" to enact a conditional restart
after reconfiguration. That unilaterally starts services if they
weren't already running. Use a single invocation with the verb
"force-reload". You can often also use "try-restart", or
"condrestart". The latter two are better, as a matter of fact, because
Fedora defines "force-reload" differently to the LSB. In the Fedora
world, "force-reload" is supposed to actually start a service if it
isn't currently running.
*
https://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782993
*
https://fedoraproject.org/w/index.php?title=Packaging:SysVInitScript&oldid=297366#Required_Actions
My shims are not the only places where verb translation happens. You
have to do it, too, if you move between "invoke-rc.d"/"service" and
other things. systemd's own systemctl utility is not the same as the
"service" command, for one thing. It does not provide the LSB verb set,
but a revised verb set of its own; one that has changed with time, too.
For it, the (currently) correct verb here is "try-reload-or-restart",
which attempts a reload, and if that is not possible does a restart, but
only if the service is currently already running. "condrestart" used to
be available and documented as an alias for (what was then) the
"reload-or-try-restart" verb, and later became an alias for the
"try-restart" verb. It has since been removed from the systemctl
documentation altogether. I haven't checked whether it is still
actually there in the program.
*
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Services.html#tabl-Managing_Services_with_systemd-Services-systemctl
*
https://lists.freedesktop.org/archives/systemd-devel/2010-September/000387.html
*
https://lists.freedesktop.org/archives/systemd-devel/2010-November/000863.html
* https://bugzilla.redhat.com/show_bug.cgi?id=635780
* http://linuxmanpages.net/manpages/fedora16/man1/systemctl.1.html