杀死给定用户的所有进程

有没有可靠的方法来杀死给定用户的所有进程? 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