Date: Fri, 03 Mar 2017 16:17:37 -0700 From: Ian Lepore <ian@freebsd.org> To: "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com>, Dirk-Willem van Gulik <dirkx@webweaving.org> Cc: freebsd-hackers@freebsd.org Subject: Re: kill -0 <pid> --- side effect or supported Message-ID: <1488583057.69705.3.camel@freebsd.org> In-Reply-To: <11A4B6AB-E51D-4754-8E80-4503687E0F84@gmail.com> References: <23F3BAC3-0D8B-4290-8DC2-818D67A0B6A9@webweaving.org> <11A4B6AB-E51D-4754-8E80-4503687E0F84@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2017-03-03 at 14:23 -0800, Ngie Cooper (yaneurabeya) wrote: > > > > On Mar 3, 2017, at 14:12, Dirk-Willem van Gulik wrote: > > > > I regularly use 'kill -0 ' 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 > performed but no signal is actually sent. This can be used to check the > validity of pid. > > So, the manpage for kill(1) is just lacking in the sense that -0 is supported. > > Cheers! > -Ngie An interesting point related to "error checking is performed"... one of the error checks is "do you have permission to send a signal to this process?" That means that kill -0 can only be used to check whether a process you have permission to control is running. For example "killall -0 ntpd" cannot tell you whether ntpd is running unless you are root. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1488583057.69705.3.camel>