Linux常用命令-pkill

命令

pkill

描述

look up or signal processes based on name and other attributes
根据名称结束进程

用法

1
pkill [options] pattern

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pattern支持正则

Options:
-<sig>, --signal <sig> 发送指定信号,可以是名称或号码,可以通过kill -l命令查看所有信号
-e, --echo 显示被杀的进程信息
以下选项和pgrep的选项相同,部分选项可能不适用于pkill
-v, --inverse 取反
-w, --lightweight 显示所有的TID
-c, --count 显示匹配到的进程数量
-f, --full 使用完整的进程名进行匹配
-g, --pgroup <PGID,...> 指定进程组PGID
-G, --group <GID,...> 指定GID,不建议使用该选项
-n, --newest 选择最近启动的进程
-o, --oldest 选择最早启动的进程
-P, --parent <PPID,...> 指定父进程PPID查看子进程
-s, --session <SID,...> 指定会话SID
-t, --terminal <tty,...> 指定终端
-u, --euid <ID,...> 指定用户名,不建议使用该选项
-U, --uid <ID,...> 指定UID
-x, --exact 精确匹配命名行
-F, --pidfile <file> 从文件读取PID
-L, --logpidfile 如果PID文件没有被锁定则失败
--ns <PID> 匹配与属于同一命名空间的进程
--nslist <ns,...> 指定命名空间,可选ipc, mnt, net, pid, user, uts

注意

pkill命令是根据过滤条件结束对应的进程
pkillpgrep大部分选项作用相同,具体选项可以查看pgrep的示例
建议先通过pgrep过滤进程,然后通过pkill结束进程,避免误删
慎用-g,-G,-u,-U选项,可能会结束指定用户或组的所有进程
ssh属于核心进程,不建议使用pkill结束,会同时结束sshd服务本身,导致无法远程连接到服务器

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$ ps aux | grep chrony
chrony 663 0.0 0.0 117808 1804 ? S 13:14 0:00 /usr/sbin/chronyd
# 建议先通过pgrep过滤进程,然后通过pkill结束进程,避免误删
$ pgrep -a chrony
663 /usr/sbin/chronyd
$ pkill -e chronyd
chronyd killed (pid 663)
# sshd属于核心进程,不建议使用pkill结束,会导致所有ssh连接断开,包括sshd服务本身
$ pgrep -a sshd
10353 /usr/sbin/sshd -D
10359 sshd: root@pts/0
10401 sshd: root@pts/1
# 绝对不能使用pkill执行以下命令结束sshd
$ pkill -e sshd
# 建议使用kill命令结束对应的sshd连接
$ kill 10359

# 查看所有信号
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX