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
     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 checking 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.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.

ERRORS
     Kill will fail and no signal will be sent if any of the following 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).