xref: /freebsd/bin/pkill/pkill.1 (revision 4f4b548b1d21ae16955b09f9b717524167a7d97e)
1.\"	$NetBSD: pkill.1,v 1.8 2003/02/14 15:59:18 grant Exp $
2.\"
3.\" $FreeBSD$
4.\"
5.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
6.\" All rights reserved.
7.\"
8.\" This code is derived from software contributed to The NetBSD Foundation
9.\" by Andrew Doran.
10.\"
11.\" Redistribution and use in source and binary forms, with or without
12.\" modification, are permitted provided that the following conditions
13.\" are met:
14.\" 1. Redistributions of source code must retain the above copyright
15.\"    notice, this list of conditions and the following disclaimer.
16.\" 2. Redistributions in binary form must reproduce the above copyright
17.\"    notice, this list of conditions and the following disclaimer in the
18.\"    documentation and/or other materials provided with the distribution.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30.\" POSSIBILITY OF SUCH DAMAGE.
31.\"
32.Dd December 3, 2018
33.Dt PKILL 1
34.Os
35.Sh NAME
36.Nm pgrep , pkill
37.Nd find or signal processes by name
38.Sh SYNOPSIS
39.Nm pgrep
40.Op Fl LSafilnoqvx
41.Op Fl F Ar pidfile
42.Op Fl G Ar gid
43.Op Fl M Ar core
44.Op Fl N Ar system
45.Op Fl P Ar ppid
46.Op Fl U Ar uid
47.Op Fl c Ar class
48.Op Fl d Ar delim
49.Op Fl g Ar pgrp
50.Op Fl j Ar jail
51.Op Fl s Ar sid
52.Op Fl t Ar tty
53.Op Fl u Ar euid
54.Ar pattern ...
55.Nm pkill
56.Op Fl Ar signal
57.Op Fl ILafilnovx
58.Op Fl F Ar pidfile
59.Op Fl G Ar gid
60.Op Fl M Ar core
61.Op Fl N Ar system
62.Op Fl P Ar ppid
63.Op Fl U Ar uid
64.Op Fl c Ar class
65.Op Fl g Ar pgrp
66.Op Fl j Ar jail
67.Op Fl s Ar sid
68.Op Fl t Ar tty
69.Op Fl u Ar euid
70.Ar pattern ...
71.Sh DESCRIPTION
72The
73.Nm pgrep
74command searches the process table on the running system and prints the
75process IDs of all processes that match the criteria given on the command
76line.
77.Pp
78The
79.Nm pkill
80command searches the process table on the running system and signals all
81processes that match the criteria given on the command line.
82.Pp
83The following options are available:
84.Bl -tag -width ".Fl F Ar pidfile"
85.It Fl F Ar pidfile
86Restrict matches to a process whose PID is stored in the
87.Ar pidfile
88file.
89.It Fl G Ar gid
90Restrict matches to processes with a real group ID in the comma-separated
91list
92.Ar gid .
93.It Fl I
94Request confirmation before attempting to signal each process.
95.It Fl L
96The
97.Ar pidfile
98file given for the
99.Fl F
100option must be locked with the
101.Xr flock 2
102syscall or created with
103.Xr pidfile 3 .
104.It Fl M Ar core
105Extract values associated with the name list from the specified core
106instead of the currently running system.
107.It Fl N Ar system
108Extract the name list from the specified system instead of the default,
109which is the kernel image the system has booted from.
110.It Fl P Ar ppid
111Restrict matches to processes with a parent process ID in the
112comma-separated list
113.Ar ppid .
114.It Fl S
115Search also in system processes (kernel threads).
116.It Fl U Ar uid
117Restrict matches to processes with a real user ID in the comma-separated
118list
119.Ar uid .
120.It Fl d Ar delim
121Specify a delimiter to be printed between each process ID.
122The default is a newline.
123This option can only be used with the
124.Nm pgrep
125command.
126.It Fl a
127Include process ancestors in the match list.
128By default, the current
129.Nm pgrep
130or
131.Nm pkill
132process and all of its ancestors are excluded (unless
133.Fl v
134is used).
135.It Fl c Ar class
136Restrict matches to processes running with specified login class
137.Ar class .
138.It Fl f
139Match against full argument lists.
140The default is to match against process names.
141.It Fl g Ar pgrp
142Restrict matches to processes with a process group ID in the comma-separated
143list
144.Ar pgrp .
145The value zero is taken to mean the process group ID of the running
146.Nm pgrep
147or
148.Nm pkill
149command.
150.It Fl i
151Ignore case distinctions in both the process table and the supplied pattern.
152.It Fl j Ar jail
153Restrict matches to processes inside the specified jails.
154The argument
155.Ar jail
156may be
157.Dq Li any
158to match processes in any jail,
159.Dq Li none
160to match processes not in jail,
161or a comma-separated list of jail IDs or names.
162.It Fl l
163Long output.
164For
165.Nm pgrep ,
166print the process name in addition to the process ID for each matching
167process.
168If used in conjunction with
169.Fl f ,
170print the process ID and the full argument list for each matching process.
171For
172.Nm pkill ,
173display the kill command used for each process killed.
174.It Fl n
175Select only the newest (most recently started) of the matching processes.
176.It Fl o
177Select only the oldest (least recently started) of the matching processes.
178.It Fl q
179For
180.Nm pgrep ,
181Do not write anything to standard output.
182.It Fl s Ar sid
183Restrict matches to processes with a session ID in the comma-separated
184list
185.Ar sid .
186The value zero is taken to mean the session ID of the running
187.Nm pgrep
188or
189.Nm pkill
190command.
191.It Fl t Ar tty
192Restrict matches to processes associated with a terminal in the
193comma-separated list
194.Ar tty .
195Terminal names may be of the form
196.Pa tty Ns Ar xx
197or the shortened form
198.Ar xx .
199A single dash
200.Pq Ql -
201matches processes not associated with a terminal.
202.It Fl u Ar euid
203Restrict matches to processes with an effective user ID in the
204comma-separated list
205.Ar euid .
206.It Fl v
207Reverse the sense of the matching; display processes that do not match the
208given criteria.
209.It Fl x
210Require an exact match of the process name, or argument list if
211.Fl f
212is given.
213The default is to match any substring.
214.It Fl Ns Ar signal
215A non-negative decimal number or symbolic signal name specifying the signal
216to be sent instead of the default
217.Dv TERM .
218This option is valid only when given as the first argument to
219.Nm pkill .
220.El
221.Pp
222If any
223.Ar pattern
224operands are specified, they are used as extended regular expressions to match
225the command name or full argument list of each process.
226If the
227.Fl f
228option is not specified, then the
229.Ar pattern
230will attempt to match the command name.
231However, presently
232.Fx
233will only keep track of the first 19 characters of the command
234name for each process.
235Attempts to match any characters after the first 19 of a command name
236will quietly fail.
237.Pp
238Note that a running
239.Nm pgrep
240or
241.Nm pkill
242process will never consider itself nor system processes (kernel threads) as
243a potential match.
244.Sh IMPLEMENTATION NOTES
245The Sun Solaris implementation utilised procfs to obtain process information.
246This implementation utilises
247.Xr kvm 3
248instead.
249On a live system,
250.Xr kvm 3
251uses
252.Va kern.proc
253MIB to obtain the list of processes, kernel memory through
254.Pa /dev/kmem
255is not accessed.
256.Sh EXIT STATUS
257The
258.Nm pgrep
259and
260.Nm pkill
261utilities
262return one of the following values upon exit:
263.Bl -tag -width indent
264.It 0
265One or more processes were matched.
266.It 1
267No processes were matched.
268.It 2
269Invalid options were specified on the command line.
270.It 3
271An internal error occurred.
272.El
273.Sh COMPATIBILITY
274Historically the option
275.Dq Fl j Li 0
276means any jail, although in other utilities such as
277.Xr ps 1
278jail ID
279.Li 0
280has the opposite meaning, not in jail.
281Therefore
282.Dq Fl j Li 0
283is deprecated, and its use is discouraged in favor of
284.Dq Fl j Li any .
285.Sh SEE ALSO
286.Xr kill 1 ,
287.Xr killall 1 ,
288.Xr ps 1 ,
289.Xr flock 2 ,
290.Xr kill 2 ,
291.Xr sigaction 2 ,
292.Xr kvm 3 ,
293.Xr pidfile 3 ,
294.Xr re_format 7
295.\" Xr signal 7
296.Sh HISTORY
297The
298.Nm pkill
299and
300.Nm pgrep
301utilities
302first appeared in
303.Nx 1.6 .
304They are modelled after utilities of the same name that appeared in Sun
305Solaris 7.
306They made their first appearance in
307.Fx 5.3 .
308.Sh AUTHORS
309.An Andrew Doran Aq Mt ad@NetBSD.org
310