Provided by: manpages-dev_4.04-2_all bug

NAME

       killpg - send signal to a process group

SYNOPSIS

       #include <signal.h>

       int killpg(int pgrp, int sig);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       killpg():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

       killpg()  sends  the  signal  sig  to the process group pgrp.  See signal(7) for a list of
       signals.

       If pgrp is 0, killpg() sends the signal to the calling process's  process  group.   (POSIX
       says: If pgrp is less than or equal to 1, the behavior is undefined.)

       For  a  process  to  have  permission to send a signal it must either be privileged (under
       Linux: have the CAP_KILL capability), or the real or effective  user  ID  of  the  sending
       process  must  equal  the real or saved set-user-ID of the target process.  In the case of
       SIGCONT it suffices when the sending and receiving processes belong to the same session.

RETURN VALUE

       On success, zero is returned.  On error, -1 is returned, and errno is set appropriately.

ERRORS

       EINVAL sig is not a valid signal number.

       EPERM  The process does not have permission to send  the  signal  to  any  of  the  target
              processes.

       ESRCH  No process can be found in the process group specified by pgrp.

       ESRCH  The  process  group  was given as 0 but the sending process does not have a process
              group.

CONFORMING TO

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (killpg() first appeared in 4BSD).

NOTES

       There are various differences between the permission  checking  in  BSD-type  systems  and
       System V-type systems.  See the POSIX rationale for kill().  A difference not mentioned by
       POSIX concerns the return value EPERM: BSD documents that no  signal  is  sent  and  EPERM
       returned  when  the  permission  check failed for at least one target process, while POSIX
       documents EPERM only when the permission check failed for all target processes.

   C library/kernel differences
       On  Linux,  killpg()  is  implemented  as  a  library  function  that   makes   the   call
       kill(-pgrp, sig).

SEE ALSO

       getpgrp(2), kill(2), signal(2), capabilities(7), credentials(7)

COLOPHON

       This  page  is  part of release 4.04 of the Linux man-pages project.  A description of the
       project, information about reporting bugs, and the latest version of  this  page,  can  be
       found at http://www.kernel.org/doc/man-pages/.