kill (2)





NAME

       kill - send signal to a process


SYNOPSIS

       #include <sys/types.h>
       #include <signal.h>

       int kill(pid_t pid, int sig);


DESCRIPTION

       The  kill  system  call  can  be used to send any signal to any process
       group or process.

       If pid is positive, then signal sig is sent to pid.

       If pid equals 0, then sig is sent to every process in the process group
       of the current process.

       If  pid equals -1, then sig is sent to every process except for process
       1 (init), but see below.

       If pid is less than -1, then sig is sent to every process in  the  pro-
       cess group -pid.

       If  sig  is 0, then no signal is sent, but error checking is still per-
       formed.


RETURN VALUE

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


ERRORS

       EINVAL An invalid signal was specified.

       ESRCH  The  pid or process group does not exist.  Note that an existing
              process might be a zombie, a  process  which  already  committed
              termination, but has not yet been wait()ed for.

       EPERM  The  process  does not have permission to send the signal to any
              of the receiving processes.  For a process to have permission to
              send  a  signal  to  process pid it must either have root privi-
              leges, or the real or effective user ID of the  sending  process
              must  equal  the real or saved set-user-ID of the receiving pro-
              cess.  In the case of SIGCONT it suffices when the  sending  and
              receiving processes belong to the same session.


NOTES

       It is impossible to send a signal to task number one, the init process,
       for which it has not installed a  signal  handler.   This  is  done  to
       assure the system is not brought down accidentally.

       POSIX  1003.1-2001 requires that kill(-1,sig) send sig to all processes
       that the current process may send signals to, except possibly for  some
       implementation-defined  system  processes.   Linux  allows a process to
       signal itself, but on Linux the call kill(-1,sig) does not  signal  the
       the  effective  user ID of the sender matched either the real or effec-
       tive user ID of the receiver.  The  current  rules,  which  conform  to
       POSIX 1003.1-2001, were adopted in kernel 1.3.78.


CONFORMING TO

       SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001


SEE ALSO

       _exit(2), exit(3), signal(2), signal(7)

Linux 2.5.0                       2001-12-18                           kill(2)