杀死给定用户的所有进程

时间:2013-03-16 17:04:30

标签: posix

是否有可靠的方法来杀死给定用户的所有进程? kill(-1, SIGKILL)该用户将工作,除非该用户的恶意进程首先杀死查杀过程。到目前为止,我能找到的最好的方法是为该用户循环system("ps -u")并以这种方式终止进程,但这看起来真的很麻烦且效率低下。

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

4 个答案:

答案 0 :(得分:94)

只是(暂时)用

杀死我的Macbook
killall -u pu -m .

其中pu是我的用户ID。观察命令末尾的点。

也可以尝试

pkill -u pu

ps -o pid -u pu | xargs kill -1

答案 1 :(得分:39)

这是一个执行此操作的单行程序,只需将用户名替换为您要杀死的用户名。不要想在那里扎根!

pkill -9 -u `id -u username`

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

答案 2 :(得分:5)

以下命令会杀死此用户创建的所有进程:

kill  -9  -1

答案 3 :(得分:2)

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