problem with start-stop-daemon and --exec

Ed W lists at wildgooses.com
Mon Mar 5 01:06:54 UTC 2012


On 04/03/2012 16:30, ralda at gmx.de wrote:
> Hallo Ed!
>
>>> start-stop-daemon --stop --pidfile /var/run/nginx.pid
>> Yes this works.  Up until recently that's exactly what gentoo used,
>> but they have now started to switch their init scripts to be more
>> specific with --exec
>>
>> I guess this also defends against services which die in the
>> background and something else ends up accidently running on the same
>> pid
> My start-stop-daemon from Gentoo killed processes if they EITHER
> matched the pid from file OR the given exec name. As this killed
> sometimes the wrong process I switched to Busybox start-stop-daemon
> witch killed only the process when both conditions met (pid AND name).
> But that test was back in last year spring. May be things changed since
> this.

Testing with openrc-0.9.8.2 I see that it's an "AND" and further that 
either mangling my pid file or selecting only --exec fails to kill my 
process

At least in this case it seems like if there is a pidfile then the 
--exec is loosened to being non anchored in the cmdline.  For example 
this worked fine:

start-stop-daemon --stop --exec /sbin/nginx --pidfile /var/run/nginx.pid

However, this didn't (which I'm not sure I like...):

start-stop-daemon --stop --exec /usr/sbin/nginx



> IMHO is the Busybox choice better to kill only processes if all
> specified conditions match. I dislike the other approach ... but it is
> not my decision if Busybox or upstream behavior shall be changed.

I think the only change is that my s-s-d takes a non anchored --exec 
parameter, ie it can occur anywhere in the cmdline.  This seems 
reasonable to me and useful in the case of daemons which augment their 
cmdline to show status, etc

Any chance of such a change to busybox?

Thanks

Ed W
>
> --
> Harald



More information about the busybox mailing list