PKILL(1) | General Commands Manual | PKILL(1) |
pgrep
, pkill
— find or signal processes by name
pgrep |
[-Lafilnoqvx ] [-F
pidfile] [-G
gid] [-P
ppid] [-U
uid] [-d
delim] [-g
pgrp] [-t
tty] [-u
euid] pattern ... |
pkill |
[- signal]
[-ILafilnovx ] [-F
pidfile] [-G
gid] [-P
ppid] [-U
uid] [-g
pgrp] [-t
tty] [-u
euid] pattern ... |
The pgrep
command searches the process
table on the running system and prints the process IDs of all processes that
match the criteria given on the command line.
The pkill
command searches the process
table on the running system and signals all processes that match the
criteria given on the command line.
The following options are available:
-F
pidfile-G
gid-I
-L
-F
option must be locked with the
flock(2) syscall or created with
pidfile(3).-P
ppid-U
uid-d
delimpgrep
command.-a
pgrep
or pkill
process and
all of its ancestors are excluded (unless -v
is
used).-f
-g
pgrppgrep
or pkill
command.-i
-l
pgrep
, print the process name in
addition to the process ID for each matching process. If used in
conjunction with -f
, print the process ID and the
full argument list for each matching process. For
pkill
, display the kill command used for each
process killed.-n
-o
-q
pgrep
, Do not write anything to standard
output.-t
tty-
’) matches processes not
associated with a terminal.-u
euid-v
-x
-f
is given. The default is to match any
substring.-
signalTERM
.
This option is valid only when given as the first argument to
pkill
.If any pattern operands are specified, they are used as extended regular expressions to match the command name or full argument list of each process.
Note that a running pgrep
or
pkill
process will never consider itself as a
potential match.
The pgrep
and
pkill
utilities return one of the following values
upon exit:
Show the pid of the process holding the /tmp/.X0-lock pid file:
$ pgrep -F /tmp/.X0-lock 1211
Show long output for firefox processes:
$ pgrep -l firefox 1312 firefox 1309 firefox 1288 firefox 1280 firefox 1279 firefox 1278 firefox 1277 firefox 1264 firefox
Same as above but just showing the pid of the most recent process:
$ pgrep -n firefox 1312
Look for vim processes. Match against the full argument list:
$ pgrep -f vim 44968 30790
Same as above but matching against the
‘list
’ word and showing the full
argument list:
$ pgrep -f -l list 30790 vim list.txt
Send SIGSTOP signal to processes that are an exact match:
$ pkill -SIGSTOP -f -x "vim list.txt"
Without -f
names over 19 characters will
silently fail:
$ vim this_is_a_very_long_file_name & [1] 36689 $ [1]+ Stopped vim this_is_a_very_long_file_name $ pgrep "vim this" $
Same as above using the -f
flag:
$ pgrep -f "vim this" 36689
kill(1), killall(1), ps(1), flock(2), kill(2), sigaction(2), pidfile(3), re_format(7)
The pkill
and
pgrep
utilities first appeared in
NetBSD 1.6. They are modelled after utilities of the
same name that appeared in Sun Solaris 7. They made their first appearance
in FreeBSD 5.3.
Andrew Doran <ad@NetBSD.org>
October 5, 2020 | macOS 14.6 |