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  the first one, from higher numbers in the process table
     to lower.

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


BUGS

     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.


CONFORMING TO

     SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3


SEE ALSO

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