NAME

     kill - send signal to a process


SYNOPSIS

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

     int kill(pid_t pid, int sig)


DESCRIPTION

     Kill sends the signal sig to a  process,  specified  by  the
     process number pid.  Sig may be one of the signals specified
     in sigaction(2), or it may be 0, in which case error  check-
     ing is performed but no signal is actually sent. This can be
     used to check the validity of pid.

     The sending and  receiving  processes  must  have  the  same
     effective  user ID, otherwise this call is restricted to the
     super-user.

     If the process number is  0,  the  signal  is  sent  to  all
     processes in the sender's process group.

     If the process number is -1 and the user is the  super-user,
     the  signal  is broadcast universally except to init and the
     process sending the signal.  If the process number is -1 and
     the  user  is  not  the  super-user, the signal is broadcast
     universally to all processes with the same uid as  the  user
     except the process sending the signal.  No error is returned
     if any process could be signaled.

     If the process number is negative but not -1, the signal  is
     sent to all processes whose process group ID is equal to the
     absolute value of the process number.

     Processes may send signals to themselves.


RETURN VALUE

     Upon successful completion, a value of 0 is returned.   Oth-
     erwise,  a value of -1 is returned and errno is set to indi-
     cate the error.


ERRORS

     Kill will fail and no signal will be sent if any of the fol-
     lowing occur:

     [EINVAL]       Sig is not a valid signal number.

     [ESRCH]        No process can be found corresponding to that
                    specified by pid.

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

     [EPERM]        The sending process is not the super-user and
                    its  effective  user  id  does  not match the
                    effective user-id of the  receiving  process.
                    When  signaling  a  process group, this error
                    was returned if  any  members  of  the  group
                    could not be signaled.


SEE ALSO

     getpid(2), getpgrp(2), sigaction(2), raise(3).