KILL(2)			  Linux Programmer's Manual		      KILL(2)



NAME
       kill - send signal to a process

SYNOPSIS
       #include 
       #include 

       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	 pro-
       cess group -pid.

       If  sig is 0, then no signal is sent, but error checking is still per-
       formed.

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 privi-
	      leges, or the real or effective user ID of the sending  process
	      must  equal the real or saved set-user-ID of the receiving pro-
	      cess.  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 pro-
       cess, for which it has not installed a signal handler.  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.

LINUX HISTORY
       Across  different  kernel versions, Linux has enforced different rules
       for the permissions required for an unprivileged	 process  to  send  a
       signal to another process.  In kernels 1.0 to 1.2.2, a signal could be
       sent if the effective user ID  of  the  sender  matched	that  of  the
       receiver,  or  the  real	 user  ID  of  the sender matched that of the
       receiver.  From kernel 1.2.3 until 1.3.77, a signal could be  sent  if
       the  effective user ID of the sender matched either the real or effec-
       tive user ID of the receiver.  The current  rules,  which  conform  to
       POSIX 1003.1-2001, were adopted in kernel 1.3.78.

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

SEE ALSO
       _exit(2), killpg(2), signal(2), tkill(2), exit(3), signal(7)



Linux 2.5.0			  2001-12-18			      KILL(2)