什么命令可以确保用户结束掉自己的所有进程?
pkill -9 -u $(whoami)这种怕pkill最先"自杀"
什么命令可以确保用户结束掉自己的所有进程?pkill -9 -u $(whoami)这种怕pkill最先"自杀"
-
- 帖子: 2284
- 注册时间: 2013-05-26 6:58
- 系统: Debian 9
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: 什么命令可以确保用户结束掉自己的所有进程?pkill -9 -u $(whoami)这种怕pkill最先"自杀"
正常的做法有两种:
1、遍历进程发信号时排除掉自身
2、另外建立一个归root的守护进程,向守护进程发出请求,由守护进程来发信号
以前我用的是方法1,写个shell脚本也没多少行。利用killall的--older-than一般情况下也够用了
现在是用方法2,因为upstart/systemd的dbus接口是现成的,直接发个消息就是了,也不需要特别的权限
装个d-feet,看看org.freedesktop.login1的方法就明白
1、遍历进程发信号时排除掉自身
2、另外建立一个归root的守护进程,向守护进程发出请求,由守护进程来发信号
以前我用的是方法1,写个shell脚本也没多少行。利用killall的--older-than一般情况下也够用了
现在是用方法2,因为upstart/systemd的dbus接口是现成的,直接发个消息就是了,也不需要特别的权限
装个d-feet,看看org.freedesktop.login1的方法就明白
- langyxxl
- 帖子: 443
- 注册时间: 2012-01-17 22:17
Re: 什么命令可以确保用户结束掉自己的所有进程?pkill -9 -u $(whoami)这种怕pkill最先"自杀"
这个你可以放心,pkill是pgrep的链接,pgrep的源代码中,选择进程的函数是“select_procs”
你看,源代码while循环中把自己的线程tid去掉了
你看,源代码while循环中把自己的线程tid去掉了