[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: