8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man2 / kill.2
blob794cb22ef1a1b22b0e858a95f4724ed2cf75a37e
1 '\" te
2 .\" Copyright 1989 AT&T.  Copyright (c) 2004, Sun Microsystems, Inc.  All Rights Reserved.
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH KILL 2 "Mar 22, 2004"
7 .SH NAME
8 kill \- send a signal to a process or a group of processes
9 .SH SYNOPSIS
10 .LP
11 .nf
12 #include <sys/types.h>
13 #include <signal.h>
15 \fBint\fR \fBkill\fR(\fBpid_t\fR \fIpid\fR, \fBint\fR \fIsig\fR);
16 .fi
18 .SH DESCRIPTION
19 .sp
20 .LP
21 The \fBkill()\fR function sends a signal to a process or a group of processes.
22 The process or group of processes to which the signal is to be sent is
23 specified by \fIpid\fR. The signal that is to be sent is specified by \fIsig\fR
24 and is either one from the list given in \fBsignal\fR (see
25 \fBsignal.h\fR(3HEAD)), or 0. If \fIsig\fR is 0 (the null signal), error
26 checking is performed but no signal is actually sent. This can be used to check
27 the validity of \fIpid\fR.
28 .sp
29 .LP
30 The real or effective user ID of the sending process must match the real or
31 saved (from one of functions in the \fBexec\fR(2) family) user ID of the
32 receiving process, unless the privilege {\fBPRIV_PROC_OWNER\fR} is asserted in
33 the effective set of the sending process (see \fBIntro\fR(2)), or \fIsig\fR is
34 \fBSIGCONT\fR and the sending process has the same session \fBID\fR as the
35 receiving process. A process needs the basic privilege
36 {\fBPRIV_PROC_SESSION\fR} to send signals to a process with a different session
37 ID. See \fBprivileges\fR(5).
38 .sp
39 .LP
40 If \fIpid\fR is greater than 0, \fIsig\fR will be sent to the process whose
41 process ID is equal to  \fIpid\fR.
42 .sp
43 .LP
44 If \fIpid\fR is negative but not \fB(pid_t)\(mi1\fR, \fIsig\fR will be sent to
45 all processes whose process group ID is equal to the absolute value of
46 \fIpid\fR and for which the process has permission to send a signal.
47 .sp
48 .LP
49 If \fIpid\fR is 0, \fIsig\fR will be sent to all processes excluding special
50 processes (see \fBIntro\fR(2)) whose process group ID is equal to the process
51 group ID of the sender.
52 .sp
53 .LP
54 If \fIpid\fR is \fB(pid_t)\(mi1\fR and the {\fBPRIV_PROC_OWNER\fR} privilege is
55 not asserted in the effective set of the sending process, \fIsig\fR will be
56 sent to all processes excluding special processes whose real user ID is equal
57 to the effective user \fBID\fR of the sender.
58 .sp
59 .LP
60 If \fIpid\fR is \fB(pid_t)\(mi1\fR and the {\fBPRIV_PROC_OWNER\fR} privilege is
61 asserted in the effective set of the sending process, \fIsig\fR will be sent to
62 all processes excluding special processes.
63 .SH RETURN VALUES
64 .sp
65 .LP
66 Upon successful completion, 0 is returned. Otherwise, \(mi1 is returned, no
67 signal is sent, and \fBerrno\fR is set to indicate the error.
68 .SH ERRORS
69 .sp
70 .LP
71 The \fBkill()\fR function will fail if:
72 .sp
73 .ne 2
74 .na
75 \fB\fBEINVAL\fR\fR
76 .ad
77 .RS 10n
78 The \fIsig\fR argument is not a valid signal number.
79 .RE
81 .sp
82 .ne 2
83 .na
84 \fB\fBEPERM\fR\fR
85 .ad
86 .RS 10n
87 The \fIsig\fR argument is \fBSIGKILL\fR and the \fIpid\fR argument is
88 \fB(pid_t)-1\fR (that is, the calling process does not have permission to send
89 the signal to any of the processes specified by \fIpid\fR).
90 .sp
91 The effective user of the calling process does not match the real or saved user
92 and the calling process does not have the {\fBPRIV_PROC_OWNER\fR} privilege
93 asserted in the effective set, and the calling process either is not sending
94 \fBSIGCONT\fR to a process that shares the same session \fBID\fR or does not
95 have the {\fBPRIV_PROC_SESSION\fR} privilege asserted and is trying to send a
96 signal to a process with a different session ID.
97 .RE
99 .sp
100 .ne 2
102 \fB\fBESRCH\fR\fR
104 .RS 10n
105 No process or process group can be found corresponding to that specified by
106 \fIpid\fR.
109 .SH USAGE
112 The \fBsigsend\fR(2) function provides a more versatile way to send signals to
113 processes.
114 .SH ATTRIBUTES
117 See \fBattributes\fR(5) for descriptions of the following attributes:
122 box;
123 c | c
124 l | l .
125 ATTRIBUTE TYPE  ATTRIBUTE VALUE
127 Interface Stability     Standard
129 MT-Level        Async-Signal-Safe
132 .SH SEE ALSO
135 \fBkill\fR(1), \fBIntro\fR(2), \fBexec\fR(2), \fBgetpid\fR(2), \fBgetsid\fR(2),
136 \fBsetpgrp\fR(2), \fBsigaction\fR(2), \fBsigsend\fR(2), \fBsignal\fR(3C),
137 \fBsignal.h\fR(3HEAD), \fBattributes\fR(5), \fBprivileges\fR(5),
138 \fBstandards\fR(5)