linux中pkill命令详解

嘿,当我在服务器上修改 Linux 时,经常使用 pkill 命令。
这确实是一件方便的事情,尤其是当某个特定进程崩溃或占用过多 CPU 和内存时。

我记得有一次,大概是去年冬天,当时我在上海的一个计算机实验室里。
有一堆虚拟机,其中一个卡住了,一动不动。
我仔细查看了一下,发现一个计划的备份脚本无法正常运行,CPU 高达 9 0% 时卡在了那里。
当时太忙了,所以想快点完成。
我使用了 pkill -9 scriptname 并直接用 SIGKILL 杀死了它。
嘿嘿,果然成功了,虚拟机立刻就恢复正常了。
你看,pkill 在这种情况下确实有效。

但是你必须小心这个命令。
正如你所说,默认是 SIGTERM,它更温和。
但有时,例如使用-9 强制取消,未保存的数据可能会丢失。
记得有一次我手滑了,本来想用pkill -u username来杀掉用户进程,结果忘了加参数,直接pkill -u username。
结果用户的进程全部被杀掉了,用户还在骂。
幸好我很快杀掉了 -9 Processid 把他的重要进程恢复了,不然他就得找麻烦了。

所以你看,如果你使用pkill,最好使用ps aux |首先运行 grep process name 以确保退出正确的进程。
尤其是使用正则表达式-f时,需要更加小心,因为匹配范围非常大。
例如,如果您使用 pkill -f '.chrome'。
如果您使用 Chrome,所有进程都将终止,并且必须关闭浏览器。
这也是我有一次差点关掉用户聊天软件的原因。

总之,pkill是一个强大的工具,但它也是一个“毁灭性武器”,必须谨慎使用。
你问的问题都很有道理,我对此没有任何问题。

linux中pkill命令详解

pkill是Linux中直接杀死进程的神器。
您无需寻找 PID。
您只需一次搜索即可完成。
简单来说,它就是利用名称、用户、终端来查找进程,比杀掉要快得多。

模糊匹配是使用正则表达式来查找进程名称。
例如,如果你想找到firefox,只需pkillfirefox。

对于多个信号,SIGTERM 作为标准发送。
如果你想强制执行,请在 SIGKILL 中添加 -9
按用户、终端或命令行搜索。
例如,如果要查找特定用户的进程,请使用 pkill -uusername。

常用的选项,如-s指定信号,-u指定用户,-t指定终端,-f匹配整个命令行,-e显示进程信息,-c统计进程数。

用例,比如杀掉firefox进程,直接pkillfirefox;强行杀掉nginx,pkill-9 nginx。

注意,-9 信号要小心使用,数据可能会丢失。
小心正则表达式,不要误杀它们。
使用 -t 时,终端设备名称必须拼写正确。
您可以使用 w 命令来显示当前终端。

linux 下的 kill pkill skill killall 有什么区别