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

FreeBSD Manual Pages

  
 
  

home | help
KILL(2)			      System Calls Manual		       KILL(2)

NAME
       kill -- send signal to a	process

LIBRARY
       Standard	C Library (libc, -lc)

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

       int
       kill(pid_t pid, int sig);

DESCRIPTION
       The  kill() system call sends the signal	given by sig to	pid, a process
       or a group of processes.	 The sig argument 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.

       For a process to	have permission	to send	a signal to a  process	desig-
       nated  by  pid,	the real or effective user ID of the receiving process
       must match that of the sending process or the user must have  appropri-
       ate  privileges	(such as given by a set-user-ID	program	or the user is
       the super-user).	 A single exception is the signal SIGCONT,  which  may
       always be sent to any process with the same session ID as the caller.

       If pid is greater than zero:
	       The sig signal is sent to the process whose ID is equal to pid.

       If pid is zero:
	       The sig signal is sent to all processes whose group ID is equal
	       to  the	process	 group	ID  of	the  sender, and for which the
	       process has permission; this is a variant of killpg(2).

       If pid is -1:
	       If the user has super-user privileges, the signal  is  sent  to
	       all  processes  excluding  system processes (with P_SYSTEM flag
	       set), process with ID 1	(usually  init(8)),  and  the  process
	       sending	the  signal.   If  the user is not the super user, the
	       signal is sent to all processes with the	same uid as  the  user
	       excluding the process sending the signal.  No error is returned
	       if any process could be signaled.

       For  compatibility with System V, 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.  This is a variant
       of killpg(2).

RETURN VALUES
       The kill() function returns the value 0 if  successful;	otherwise  the
       value  -1  is returned and the global variable errno is set to indicate
       the error.

ERRORS
       The kill() system call will fail	and no signal will be sent if:

       [EINVAL]		  The sig argument is not a valid signal number.

       [ESRCH]		  No process can be found corresponding	to that	speci-
			  fied 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 is returned	if any members
			  of the group could not be signaled.

SEE ALSO
       getpgrp(2), getpid(2), killpg(2), sigaction(2), raise(3), init(8)

STANDARDS
       The  kill()  system  call is expected to	conform	to ISO/IEC 9945-1:1990
       ("POSIX.1").

HISTORY
       The kill() function appeared in Version 7 AT&T UNIX.

FreeBSD	5.4			April 19, 1994			       KILL(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kill&sektion=2&manpath=FreeBSD+5.4-RELEASE>

home | help