Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Mar 2017 16:55:41 -0800 (PST)
From:      "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net>
To:        "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com>
Cc:        Dirk-Willem van Gulik <dirkx@webweaving.org>, freebsd-hackers@freebsd.org
Subject:   Re: kill -0 <pid> --- side effect or supported
Message-ID:  <201703040055.v240tf0H073569@pdx.rh.CN85.dnsmgr.net>
In-Reply-To: <35C6F2AA-309E-4D58-8191-AB99F0195BEC@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> > On Mar 3, 2017, at 14:30, Rodney W. Grimes <freebsd-rwg@pdx.rh.CN85.dnsmgr.net> wrote:
> > 
> > -- Start of PGP signed section.
> > [ Charset UTF-8 unsupported, converting... ]
> >> 
> >>> On Mar 3, 2017, at 14:12, Dirk-Willem van Gulik <dirkx@webweaving.org> wrote:
> >>> 
> >>> I regularly use  'kill -0 <pid>' on FreeBSD as  a way to test if a certain process is still running (but without actually sending the signal). And I think it has worked reliably since the mid 80's.
> >>> 
> >>> Is it actually a properly supported use - as I recently happened to notice that it does not seem to be all that documented in kill(
> >> 
> >> It better work. I have code that relies on it :)?
> >> 
> >> It does work as you noted, according to truss:
> >> 
> >> # sudo truss -ff kill -0 1 2>&1
> >> ...
> >> 79940: kill(1,0)                                 = 0 (0x0)
> >> ?
> >> #
> >> 
> >> As noted in kill(2), this is one of the valid values:
> >> 
> >>     a group of processes.  The sig argument may be one of the signals
> >>     specified in sigaction(2) or it may be 0, in which case error checking is
> >                                ^^^^^^^^^^^^^^^^
> > 
> > That bit of information should be promoted from kill(2) to kill(1) by
> > adding 0 to the list as ?.
> 
> Actually? it is mentioned in kill(1) ? you just have to read between the lines:
> 
>      -signal_number
>              A non-negative decimal integer, specifying the signal to be sent
>              instead of the default TERM.
> 
> 0 is technically a non-negative real number.

yes, but make it explicity clear just like it is explicity clear in kill(2),
documentation should be good, clear and concise, not left for guessing
between the lines.  Add a 0 item to the list of popular signals, or
add a sentence about this special case that is not well known.

> It might be a good idea to clarify this point/behavior by pointing to kill(2) for the signal behavior/description noted above.

It already has a xref to kill(2).  Compters derefence pointers better
than people do, so we can use all the help we can get, and if we are
reading a man page we need help!

-- 
Rod Grimes                                                 rgrimes@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703040055.v240tf0H073569>