xref: /freebsd/usr.bin/killall/killall.1 (revision f7c32ed617858bcd22f8d1b03199099d50125721)
1.\" Copyright (C) 1995 by Joerg Wunsch, Dresden
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
14.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
17.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
22.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23.\" POSSIBILITY OF SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd June 27, 2020
28.Dt KILLALL 1
29.Os
30.Sh NAME
31.Nm killall
32.Nd kill processes by name
33.Sh SYNOPSIS
34.Nm
35.Op Fl delmsvz
36.Op Fl help
37.Op Fl I
38.Op Fl j Ar jail
39.Op Fl u Ar user
40.Op Fl t Ar tty
41.Op Fl c Ar procname
42.Op Fl Ar SIGNAL
43.Op Ar procname ...
44.Sh DESCRIPTION
45The
46.Nm
47utility kills processes selected by name, as opposed to the selection by PID
48as done by
49.Xr kill 1 .
50By default, it will send a
51.Dv TERM
52signal to all processes with a real UID identical to the
53caller of
54.Nm
55that match the name
56.Ar procname .
57The super-user is allowed to kill any process.
58.Pp
59The options are as follows:
60.Bl -tag -width ".Fl c Ar procname"
61.It Fl d
62Be more verbose about what will be done, but do not send any signal.
63The total number of user processes and the real user ID is shown.
64A list of the processes that will be sent the signal will be printed, or a
65message indicating that no matching processes have been found.
66.It Fl e
67Use the effective user ID instead of the (default) real user ID for matching
68processes specified with the
69.Fl u
70option.
71.It Fl help
72Give a help on the command usage and exit.
73.It Fl I
74Request confirmation before attempting to signal each
75process.
76.It Fl l
77List the names of the available signals and exit, like in
78.Xr kill 1 .
79.It Fl m
80Match the argument
81.Ar procname
82as a (case sensitive) regular expression against the names
83of processes found.
84CAUTION!
85This is dangerous, a single dot will match any process
86running under the real UID of the caller.
87.It Fl v
88Be verbose about what will be done.
89.It Fl s
90Same as
91.Fl v ,
92but do not send any signal.
93.It Fl Ar SIGNAL
94Send a different signal instead of the default
95.Dv TERM .
96The signal may be specified either as a name
97(with or without a leading
98.Dq Li SIG ) ,
99or numerically.
100.It Fl j Ar jail
101Kill processes in the specified
102.Ar jail .
103.It Fl u Ar user
104Limit potentially matching processes to those belonging to
105the specified
106.Ar user .
107.It Fl t Ar tty
108Limit potentially matching processes to those running on
109the specified
110.Ar tty .
111.It Fl c Ar procname
112Limit potentially matching processes to those matching
113the specified
114.Ar procname .
115.It Fl q
116Suppress error message if no processes are matched.
117.It Fl z
118Do not skip zombies.
119This should not have any effect except to print a few error messages
120if there are zombie processes that match the specified pattern.
121.El
122.Sh ALL PROCESSES
123Sending a signal to all processes with the given UID
124is already supported by
125.Xr kill 1 .
126So use
127.Xr kill 1
128for this job (e.g.\&
129.Dq Li "kill -TERM -1"
130or as root
131.Dq Li "echo kill -TERM -1 | su -m <user>" ) .
132.Sh IMPLEMENTATION NOTES
133This
134.Fx
135implementation of
136.Nm
137has completely different semantics as compared to the traditional
138.Ux
139System V behavior of
140.Nm .
141The latter will kill all processes that the current user is able to
142kill, and is intended to be used by the system shutdown process only.
143.Sh EXIT STATUS
144The
145.Nm
146utility exits 0 if some processes have been found and
147signalled successfully.
148Otherwise, a status of 1 will be
149returned.
150.Sh EXAMPLES
151Send
152.Dv SIGTERM
153to all firefox processes:
154.Bd -literal -offset indent
155killall firefox
156.Ed
157.Pp
158Send
159.Dv SIGTERM
160to firefox processes belonging to
161.Va USER :
162.Bd -literal -offset indent
163killall -u ${USER} firefox
164.Ed
165.Pp
166Stop all firefox processes:
167.Bd -literal -offset indent
168killall -SIGSTOP firefox
169.Ed
170.Pp
171Resume firefox processes:
172.Bd -literal -offset indent
173killall -SIGCONT firefox
174.Ed
175.Pp
176Show what would be done to firefox processes, but do not actually signal them:
177.Bd -literal -offset indent
178killall -s firefox
179.Ed
180.Pp
181Send
182.Dv SIGKILL
183to csh process running inside jail ID 282:
184.Bd -literal -offset indent
185killall -9 -j282 csh
186.Ed
187.Pp
188Send
189.Dv SIGTERM
190to all processes matching provided pattern (like vim and vimdiff):
191.Bd -literal -offset indent
192killall -m 'vim*'
193.Ed
194.Sh DIAGNOSTICS
195Diagnostic messages will only be printed if the
196.Fl d
197flag is used.
198.Sh SEE ALSO
199.Xr kill 1 ,
200.Xr pkill 1 ,
201.Xr sysctl 3 ,
202.Xr jail 8
203.Sh HISTORY
204The
205.Nm
206command appeared in
207.Fx 2.1 .
208It has been modeled after the
209.Nm
210command as available on other platforms.
211.Sh AUTHORS
212.An -nosplit
213The
214.Nm
215program was originally written in Perl and was contributed by
216.An Wolfram Schneider ,
217this manual page has been written by
218.An J\(:org Wunsch .
219The current version of
220.Nm
221was rewritten in C by
222.An Peter Wemm
223using
224.Xr sysctl 3 .
225