是否有可靠的方法来杀死给定用户的所有进程?kill(-1, SIGKILL)因为该用户将工作,除非该用户的流氓进程首先杀死查杀过程.到目前为止,我能找到的最好的方法是system("ps -u")为该用户循环并以这种方式终止进程,但这看起来真的很麻烦且效率低下.
编辑:为了澄清,我特别要求一个POSIX兼容的解决方案.出于某种原因,我认为标记posix的问题会把它放在标题中.
use*_*lpa 96
只是(暂时)杀了我的Macbook
killall -u pu -m .
Run Code Online (Sandbox Code Playgroud)
其中pu是我的用户ID.观察命令末尾的点.
也试试
pkill -u pu
Run Code Online (Sandbox Code Playgroud)
要么
ps -o pid -u pu | xargs kill -1
Run Code Online (Sandbox Code Playgroud)
sor*_*rin 41
这是一个执行此操作的单行程序,只需将用户名替换为您要杀死的用户名.甚至不想在那里扎根!
pkill -9 -u `id -u username`
Run Code Online (Sandbox Code Playgroud)
注意:如果你想要很好地删除-9,但它不会杀死所有类型的进程.
在Debian LINUX上,我使用:ps -o pid= -u username | xargs sudo kill -9.
随着-o pid=该PS头supressed,输出只有PID列表.据我所知,Debian shell符合POSIX标准.
小智 5
以下内容将杀死该用户创建的所有进程:
kill -9 -1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161196 次 |
| 最近记录: |