杀死给定用户的所有进程
有没有可靠的方法来杀死给定用户的所有进程? kill(-1, SIGKILL)
,除非该用户的stream氓进程先杀死该进程。 到目前为止,我所能find的最好的方式是循环访问该用户的system("ps -u")
,并以这种方式杀死进程,但这看起来真的很诡异且效率低下。
编辑:澄清,我特别要求一个POSIX兼容的解决scheme。 出于某种原因,我认为标记posix的问题会把它放在标题中。
只是(暂时)用我的MacBook杀死
killall -u pu -m .
pu是我的用户名 在命令的末尾观察点。
也试试
pkill -u pu
要么
ps -o pid -u pu | xargs kill -1
这是一个这样做的单线程,只是用你想杀的东西的用户名replace用户名。 甚至不要想在那里扎根!
pkill -9 -u `id -u username`
注意:如果你想很好地移除-9,但不会杀死所有types的进程。
在Debian LINUX上,我使用: ps -o pid= -u username | xargs sudo kill -9
ps -o pid= -u username | xargs sudo kill -9
。
用-o pid=
ps标题被抑制,输出只是pid列表。 据我所知, Debian shell是符合POSIX的。
迭代/ proc虚拟文件系统呢? http://linux.die.net/man/5/proc ?
以下将杀死此用户创build的所有进程
杀死-9 -1