78

是否有可靠的方法来杀死给定用户的所有进程?kill(-1, SIGKILL)因为该用户将工作,除非该用户的流氓进程首先杀死杀死进程。到目前为止,我能找到的最好的方法是循环遍历system("ps -u")该用户并以这种方式终止进程,但这似乎真的很笨拙且效率低下。

编辑:为了澄清,我特别要求一个与 POSIX 兼容的解决方案。出于某种原因,我认为标记问题 posix 会将其放在标题中。

4

5 回答 5

105

只是(暂时)杀死了我的Macbook

killall -u pu -m .

其中 pu 是我的用户 ID。注意命令末尾的点。

也试试

pkill -u pu

或者

ps -o pid -u pu | xargs kill -1
于 2013-03-16T17:09:27.993 回答
57

这是一个执行此操作的班轮,只需将用户名替换为您想要杀死的用户名即可。甚至不要考虑在那里扎根!

pkill -9 -u `id -u username`

注意:如果你想很好删除-9,但它不会杀死所有类型的进程。

于 2015-01-15T13:56:22.777 回答
8

在 Debian LINUX 上,我使用:ps -o pid= -u username | xargs sudo kill -9.

随着-o pid=ps 标头被抑制,输出只是 pid 列表。据我所知,Debian shell是 POSIX 兼容的。

于 2015-09-09T17:58:42.450 回答
7

以下将杀死该用户创建的所有进程:

kill  -9  -1
于 2017-11-21T07:11:55.560 回答
2

在 /proc 虚拟文件系统上进行迭代呢?http://linux.die.net/man/5/proc

于 2013-03-16T17:08:36.760 回答