是否有可靠的方法来杀死给定用户的所有进程? kill(-1, SIGKILL)
该用户将工作,除非该用户的恶意进程首先杀死查杀过程。到目前为止,我能找到的最好的方法是为该用户循环system("ps -u")
并以这种方式终止进程,但这看起来真的很麻烦且效率低下。
编辑:为了澄清,我特别要求一个兼容POSIX的解决方案。出于某种原因,我认为标记posix的问题会把它放在标题中。
答案 0 :(得分:94)
只是(暂时)用
杀死我的Macbookkillall -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?