Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KILL(2)			   Linux Programmer's Manual		       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
       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
       process 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
	      process.	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 process,
       for which it has	not installed a	signal handler.	 This is done  to  as-
       sure 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 sig-
       nal  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  re-
       ceiver, 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 effective 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), exit(3), signal(2), signal(7)

Linux 2.5.0			  2001-12-18			       KILL(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | NOTES | LINUX HISTORY | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=kill&sektion=2&manpath=Red+Hat+9>

home | help