kill
KILL(L)             Linux Programmer's Manual             KILL(L)



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 process group -pid.

       If sig is 0, then no signal is sent, but error checking is
       still performed.

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 pro-
              cess  pid  it  must either have root privileges, or
              the real or effective user ID of the  sending  pro-
              cess  must  equal  the real or saved set-user-ID of
              the receiving process.  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 han-
       dler.  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 current
       process.

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

SEE ALSO
       _exit(t), exit(t), signal(l), signal(l)



Linux 2.5.0                 2001-12-18                    KILL(L)