[Pkg-sysvinit-devel] Bug#782993: service/invoke-rc.d: "force-reload" wrongly mapped to "systemctl restart"

Ansgar Burchardt ansgar at debian.org
Mon Apr 20 15:02:32 UTC 2015


Hi,

On 04/20/2015 03:07 PM, Michael Biebl wrote:
> Am 20.04.2015 um 11:13 schrieb Ansgar Burchardt:
>> This maps "service atd force-reload" to "systemctl restart atd" which
>> *starts* atd if it is not already running. However LSB says:
>>
>> +---
>> | force-reload: cause the configuration to be reloaded if the
>> | service supports this, otherwise restart the service if it is
>> | running
>> +---[ http://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html ]
>>
>> Though Debian's policy isn't quite so clear:
>>
>> +---
>> | force-reload: cause the configuration to be reloaded if the
>> | service supports this, otherwise restart the service.
>> +---[ https://www.debian.org/doc/debian-policy/ch-opersys.html#s-writing-init ]
>>
>> I assume the intent is the same. Note that the systemd integration
>> already maps "/etc/init.d/X force-reload" to "systemctl force-reload
>> X" which is equivalent to "systemctl reload-or-try-restart X" (which
>> does nothing if X is not already running).
>>
>> invoke-rc.d duplicates the same logic...
> 
> Shouldn't we get clarification on the policy in that case then?

There's an ancient bug report in policy: #152955. The discussion there
also mentions that init scripts behave in both ways, i.e. it's
inconsistent. (Fun fact: there is another bug about "/etc/init.d/X
start|stop" only being a "should"...: #491318.)

Note that not following LSB means that "systemctl force-reload X" and
"/etc/init.d/X force-reload" (or "service X force-reload") would mean
different things. Not really nice.

Also having "/etc/init.d/X force-reload" and "service X force-reload" do
different things is not nice.

But let's try to revive the policy bug...

Ansgar



More information about the Pkg-sysvinit-devel mailing list