Re: Bug#370471: use of "invoke-rc.d $PACKAGE stop || exit $?" in prerm scripts
On Mon, Jun 05, 2006 at 03:36:30PM +0300, Lars Wirzenius wrote:
> The policy manual says (9.3.2 Writing the scripts):
>
> The init.d scripts should ensure that they will behave sensibly
> if invoked with start when the service is already running, or
> with stop when it isn't, and that they don't kill
> unfortunately-named user processes.
>
> Would it be acceptable to change this to say "must ensure"?
You might call this nitpicking, but with the current Debian init scripts
using start-stop-daemon, this isn't really achievable. See the
start-stop-daemon(8) man page:
Note that unless --pidfile, is specified, then start-stop-daemon
behaves similarly to killall(1). start-stop-daemon will scan the pro-
cess table looking for any processes which match the process name, uid,
and/or gid (if specified). Any matching process will prevent --start
from starting the daemon. All matching processes will be sent the KILL
signal if --stop is specified. For daemons which have long-lived chil-
dren which need to live through a --stop you must specify a pidfile.
And relying on a pidfile also doesn't guarantee that ``they don't kill
unfortunately-named user processes'', but actually can cause exactly
that, AFAICT.
Regards, Gerrit.
Reply to: