Subject: Re: CVS commit: src/usr.sbin/rtsold
To: None <bad@bsd.de>
From: Jun-ichiro itojun Hagino <itojun@itojun.org>
List: source-changes
Date: 01/04/2004 08:56:07
> > 	no consideration to multiple daemons,
> 
>      void
>      pidfile(const char *basename);
> 
> DESCRIPTION
>      pidfile() writes a file containing the process ID of the program to the
>      /var/run directory.  The file name has the form /var/run/basename.pid.
>      If the basename argument is NULL, pidfile will determine the program name
>      and use that instead.
> 
> Seems, like the "multiple daemons" case is already taken care of in the
> interface.  Just specify a unique "basename" argument for each of the
> daemons.

	s/multiple daemons/multiple running instance of the same daemon/

> >	no consistency guarantee between actual process	table,
> Am I supposed to believe this is a widespread and serious problem in
> practice?  If so, I must have been hallucinating the last 20 years of
> using Unix.

	you may kill random victim if dangling /var/run/foo.pid stays.

> >	if anything, a script that searches and kills
> > 	"rtsold" would be much better.  or, we could extend kill(1) to take
> > 	string as an argument and kill process under given name.
> 
> Actual ps(1) output would look like this:
> 
> root     146  0.0  1.0 1596  1248 ??  Ss   Thu12PM  0:03.18 /usr/sbin/rtsold
> root     183  0.0  1.0 1596  1248 ??  Ss   Thu12PM  0:03.18 /usr/sbin/rtsold
> 
> Please explain to me, how an extension to kill(1) would help to distinguish
> between the two rtsolds and signalling only to correct one.  You answer
> should take into account that certain signals are not catchable and how
> correct operation is garaunteed in that case.

	given that /var/run/foo.pid method works only if there's only
	one running instance of the same daemon, why do i need to bother
	with the above example? (with two rtsold)

itojun