94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1980 Regents of the University of California.
 | 
						|
.\" All rights reserved.  The Berkeley software License Agreement
 | 
						|
.\" specifies the terms and conditions for redistribution.
 | 
						|
.\"
 | 
						|
.\"	@(#)kill.2	6.5 (Berkeley) 5/14/86
 | 
						|
.\"
 | 
						|
.TH KILL 2 "May 14, 1986"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
kill \- send signal to a process
 | 
						|
.SH SYNOPSIS
 | 
						|
.nf
 | 
						|
.ft B
 | 
						|
#include <sys/types.h>
 | 
						|
#include <signal.h>
 | 
						|
 | 
						|
int kill(pid_t \fIpid\fP, int \fIsig\fP)
 | 
						|
.ft R
 | 
						|
.fi
 | 
						|
.SH DESCRIPTION
 | 
						|
.B Kill
 | 
						|
sends the signal \fIsig\fP
 | 
						|
to a process, specified by the process number
 | 
						|
.IR pid .
 | 
						|
.I Sig
 | 
						|
may be one of the signals specified in
 | 
						|
.BR 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
 | 
						|
.IR pid .
 | 
						|
.PP
 | 
						|
The sending and receiving processes must
 | 
						|
have the same effective user ID, otherwise
 | 
						|
this call is restricted to the super-user.
 | 
						|
.ig
 | 
						|
A single exception is the signal SIGCONT, which may always be sent
 | 
						|
to any descendant of the current process.
 | 
						|
..
 | 
						|
.PP
 | 
						|
If the process number is 0,
 | 
						|
the signal is sent to all processes in the
 | 
						|
sender's process group.
 | 
						|
.PP
 | 
						|
If the process number is \-1
 | 
						|
and the user is the super-user,
 | 
						|
the signal is broadcast universally
 | 
						|
except to
 | 
						|
.B 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.
 | 
						|
.PP
 | 
						|
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.
 | 
						|
.PP
 | 
						|
Processes may send signals to themselves.
 | 
						|
.SH "RETURN VALUE
 | 
						|
Upon successful completion, a value of 0 is returned.
 | 
						|
Otherwise, a value of \-1 is returned and
 | 
						|
.B errno
 | 
						|
is set to indicate the error.
 | 
						|
.SH "ERRORS
 | 
						|
.B Kill
 | 
						|
will fail and no signal will be sent if any of the following
 | 
						|
occur:
 | 
						|
.TP 15
 | 
						|
[EINVAL]
 | 
						|
\fISig\fP is not a valid signal number.
 | 
						|
.TP 15
 | 
						|
[ESRCH]
 | 
						|
No process can be found corresponding to that specified by \fIpid\fP.
 | 
						|
.TP 15
 | 
						|
[ESRCH]
 | 
						|
The process id was given as 0
 | 
						|
but the sending process does not have a process group.
 | 
						|
.TP 15
 | 
						|
[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.
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR getpid (2),
 | 
						|
.BR getpgrp (2),
 | 
						|
.BR sigaction (2),
 | 
						|
.BR raise (3).
 |