pkill
2020年11月6日作用:
用于杀死 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 选项的作用