problem with start-stop-daemon and --exec
Ed W
lists at wildgooses.com
Mon Mar 5 15:25:07 UTC 2012
Hi
> I checked various start-stop-daemon manpages on the net and they
> seem to all specify checking /proc/pid/exe instead.
That's quite possible, but just to be clear, what I observe with at
least the gentoo one is that
-IFF you specify --exec AND --pid-file, then it relaxes the exec test
and does a substring search.
So this appears to allow me to to use a substring match in --exec -
which I think with a bit of thought, actually makes a lot of sense in
the event that we have a pid. I don't see that this is likely to cause
problems with regards to compatibility with other s-s-d implementations,
it's already a fairly tight "and" test.
>
> But there is a reason why we check /proc/pid/cmdline instead.
> On systems with bbox, a lot of processes will have
> /proc/pid/exe = "/bin/busybox".
> Which will make e.g.
> start-stop-daemon --stop --exec /bin/ntpd
> fail to stop ntpd if ntpd is a busybox applet.
I examined the code for openrc and I can't find any obvious reference to
/proc/pid/exe ? I confess I don't understand the implementation they
are using, but I think the relevant code is in src/librc/librc-daemon.c
if someone else could take a closer look?
> I think we need to first check /proc/pid/exe,
> and then check /proc/pid/cmdline as we do now.
Can we please consider simply relaxing the current test to be a
substring match on /proc/pid/cmdline (only in the case of both --exec
AND --pidfile)? This seems to
a) be a small code change and completely compatible with current situation
b) still a very tight test and unlikely to lead to false positives
c) handles common situations where a daemon renames itself
Thanks
Ed W
More information about the busybox
mailing list