pkill

2020年11月6日 作者 C0isini

作用:

用于杀死 linux 进程

语法:

pkill [信号][选项] name

选项:
-g 指定进程组
-t 指定开启进程的终端

信号:
-9 杀死进程,强制结束进程
-15 正常杀死进程,kill 的默认信号

实例:

[root@110 log]# ps -ef | grep nc
root       519     1  0 Mar12 ?        00:17:19 /usr/sbin/irqbalance --foreground
root     26354 26312  0 20:27 pts/3    00:00:00 nc -lvp 1234
root     26364 24010  0 20:27 pts/1    00:00:00 grep --color=auto nc
root     31227   844  0 Oct20 ?        00:00:44 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/2be80bb9c2c3f062fff54bd007a516038a64ee9e57e2fe589c6310d77c6ab8a1 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc

pkill nc


[root@110 log]# ps -ef | grep nc
root     26392 24010  0 20:27 pts/1    00:00:00 grep --color=auto nc
root     31227   844  0 Oct20 ?        00:00:44 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/2be80bb9c2c3f062fff54bd007a516038a64ee9e57e2fe589c6310d77c6ab8a1 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc

可以确认的是 pkill 是针对进程命令的,同时还是模糊匹配。

从上例中可以看到,查看存在 nc 字符的进程,总共有三个进程,两个进程的命令中带有 nc 字符(/usr/sbin/irqbalance , nc -lvp 1234),一个进程只是参数中存在 nc 字符,使用 pkill 命令之后,命令中存在 nc 字符的都被杀掉了,参数中存在 nc 字符的还存在

与 kill 的不同点:

pkill 针对的是进程名(命令),也就是会杀死所有进程名(命令)中存在指定字符的进程,而 kill 针对的是进程号,需要和 ps 命令进行搭配使用。整体来说,使用 kill 风险较小一些,也会更加精准;pkill 风险较大,存在误杀的风险(模糊匹配),但是会快一些,毕竟是批量的。

特殊使用:

清除指定终端

-t 选项的作用