# 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).