是否有可靠的方法来杀死给定用户的所有进程?kill(-1, SIGKILL)
因为该用户将工作,除非该用户的流氓进程首先杀死杀死进程。到目前为止,我能找到的最好的方法是循环遍历system("ps -u")
该用户并以这种方式终止进程,但这似乎真的很笨拙且效率低下。
编辑:为了澄清,我特别要求一个与 POSIX 兼容的解决方案。出于某种原因,我认为标记问题 posix 会将其放在标题中。
是否有可靠的方法来杀死给定用户的所有进程?kill(-1, SIGKILL)
因为该用户将工作,除非该用户的流氓进程首先杀死杀死进程。到目前为止,我能找到的最好的方法是循环遍历system("ps -u")
该用户并以这种方式终止进程,但这似乎真的很笨拙且效率低下。
编辑:为了澄清,我特别要求一个与 POSIX 兼容的解决方案。出于某种原因,我认为标记问题 posix 会将其放在标题中。
只是(暂时)杀死了我的Macbook
killall -u pu -m .
其中 pu 是我的用户 ID。注意命令末尾的点。
也试试
pkill -u pu
或者
ps -o pid -u pu | xargs kill -1
这是一个执行此操作的班轮,只需将用户名替换为您想要杀死的用户名即可。甚至不要考虑在那里扎根!
pkill -9 -u `id -u username`
注意:如果你想很好删除-9,但它不会杀死所有类型的进程。
在 Debian LINUX 上,我使用:ps -o pid= -u username | xargs sudo kill -9
.
随着-o pid=
ps 标头被抑制,输出只是 pid 列表。据我所知,Debian shell是 POSIX 兼容的。
以下将杀死该用户创建的所有进程:
kill -9 -1
在 /proc 虚拟文件系统上进行迭代呢?http://linux.die.net/man/5/proc?