Bug#356389: perl-doc: kill documentation is contradictory

Niko Tyni ntyni at debian.org
Tue Nov 9 12:25:49 UTC 2010


On Sat, Mar 11, 2006 at 05:32:28PM +0000, Roger Leigh wrote:
> Package: perl-doc
> Version: 5.8.8-2
> Severity: minor
> 
> perlfunc states:
> 
>   Unlike in the shell, if SIGNAL is negative, it kills process groups
>   instead of processes.  (On System V, a negative PROCESS number will also
>   kill process groups, but that’s not portable.) That means you usually
>   want to use positive not negative signals.  You may also use a signal
>   name in quotes.

This was changed for 5.12.0: the reference to System V was removed and this
paragraph was added:

  The behavior of kill when a PROCESS number is zero or negative
  depends on the operating system.  For example, on POSIX-conforming
  systems, zero will signal the current process group and -1 will signal
  all processes.

> perlipc states:
> 
>   Sending a signal to a negative process ID means that you send the sig‐
>   nal to the entire Unix process-group.  This code sends a hang-up signal
>   to all processes in the current process group (and sets $SIG{HUP} to
>   IGNORE so it doesn’t kill itself)
> 
> So it's not clear whether to kill a process group a negative signal, or
> a negative PID should be used.

Clearly the negative signal number is preferrable, and perlipc.pod should
be updated. A downside is that the example code becomes more convoluted:
kill has special support for resolving signal names to numbers but that
doesn't work for "negative names".
-- 
Niko Tyni   ntyni at debian.org






More information about the Perl-maintainers mailing list