什么命令可以确保用户结束掉自己的所有进程?pkill -9 -u $(whoami)这种怕pkill最先"自杀"

最大的社区版本,Ubuntu的发源地
回复
头像
astolia
论坛版主
帖子: 6444
注册时间: 2008-09-18 13:11

Re: 什么命令可以确保用户结束掉自己的所有进程?pkill -9 -u $(whoami)这种怕pkill最先"自杀"

#2

帖子 astolia » 2017-02-14 15:31

正常的做法有两种:
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最先"自杀"

#3

帖子 langyxxl » 2017-02-14 20:42

这个你可以放心,pkill是pgrep的链接,pgrep的源代码中,选择进程的函数是“select_procs”
你看,源代码while循环中把自己的线程tid去掉了
附件
pkill.png
回复