分页: 1 / 1
[已解决]shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 17:16
由 fdl19881
我在学校,实验室和宿舍联网用的都是用的一个账户登陆的 (不能同时登)
这种情况下,如果我忘了在离开实验室前,把mentohust程序退出的话,那么我回到宿舍就无法上网了。
我在windows下用的是计划任务,然后设置15分钟空闲时就将mentohust进程杀死。
在linux下的话,因为ubuntu默认的是隔多久时,屏幕会自动锁定。这应该也是检测的空闲时间。
我想用shell脚本实现如:屏幕自动锁定后,或者15分钟空闲时间后,就直接杀死mentohust进程
请问如何检测屏幕锁定没有,或者说检测空闲时间长度。
主要就是前面的。。
代码: 全选
MENTO=`ps ax | grep mentohust`
TIMES=`echo $MENTO | wc -l`
if [ "$TIMES" -gt 1 ]; then
PID=`echo $MENTO | awk '{if(NF=1)print $1}'`
kill -9 $PID
fi
求各位指导.
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 17:24
由 fdl19881
比如屏幕锁定的时候,会不会出现一个用来锁定屏莫的进程?? 然后循环检测这个进程,检测到时就执行杀mentohust的脚本.
或者ubuntu直接就提供了这个功能?
Re: shell如何检测到当前用户锁定屏幕状态?
发表于 : 2012-04-01 17:29
由 枫叶饭团
bash好像有个TMOUT
Re: shell如何检测到当前用户锁定屏幕状态?
发表于 : 2012-04-01 17:37
由 fdl19881
枫叶饭团 写了:bash好像有个TMOUT
我查了下,那个是空闲时间到了后就会注销登陆(logout吧), 然后再配合~/.profile_logout文件好像是可以达到这种效果。
等会试试,
但有没有更好的方法 , 不使当前用户注销的方法 ?
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 17:38
由 lilydjwg
fdl19881 写了:比如屏幕锁定的时候,会不会出现一个用来锁定屏莫的进程?? 然后循环检测这个进程,检测到时就执行杀mentohust的脚本.
或者ubuntu直接就提供了这个功能?
屏幕保护进程是一直在运行的。参考我这个脚本:
https://github.com/lilydjwg/winterpy/bl ... xe/screend
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 17:47
由 fdl19881
我好像看懂了点实现功能, 就是这种功能。但是python不会呀。shell也学了3月,也没怎么用。
大哥,可不可以帮我改一下,只要空闲时间比如15分钟到了,就将mentohust这个进程杀死的脚本
谢谢
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 18:06
由 lilydjwg
fdl19881 写了:
我好像看懂了点实现功能, 就是这种功能。但是python不会呀。shell也学了3月,也没怎么用。
大哥,可不可以帮我改一下,只要空闲时间比如15分钟到了,就将mentohust这个进程杀死的脚本
谢谢
我不如拿 C 给你写个呢。。你会 C 不?
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 18:29
由 枫叶饭团
如果用c的话,是不是用select检测io就行啦
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 18:38
由 lilydjwg
枫叶饭团 写了:如果用c的话,是不是用select检测io就行啦
XScreenSaverQueryInfo
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 21:32
由 fdl19881
lilydjwg 写了:枫叶饭团 写了:如果用c的话,是不是用select检测io就行啦
XScreenSaverQueryInfo
基本解决了,,但还有个问题请教下
方法是使用gnome-screensaver-command -q查询屏幕保护程序的状态
然后比较产生的字符串为活动时,即是运行结束进程的时候了
完整的脚本见:
http://blog.csdn.net/fdl19881/article/details/7420374
你说的XScreenSaverQueryInfo是linux的哪个API, 函数名是什么?
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 21:48
由 lilydjwg
fdl19881 写了:lilydjwg 写了:枫叶饭团 写了:如果用c的话,是不是用select检测io就行啦
XScreenSaverQueryInfo
基本解决了,,但还有个问题请教下
方法是使用gnome-screensaver-command -q查询屏幕保护程序的状态
然后比较产生的字符串为活动时,即是运行结束进程的时候了
完整的脚本见:
http://blog.csdn.net/fdl19881/article/details/7420374
你说的XScreenSaverQueryInfo是linux的哪个API, 函数名是什么?
它就是函数名,XScreenSaver 的,man 文档里有。
Re: shell如何检测到当前用户锁定屏幕状态 或者 空闲多久后执行脚本的功能
发表于 : 2012-04-01 22:04
由 fdl19881
lilydjwg 写了:fdl19881 写了:lilydjwg 写了:枫叶饭团 写了:如果用c的话,是不是用select检测io就行啦
XScreenSaverQueryInfo
基本解决了,,但还有个问题请教下
方法是使用gnome-screensaver-command -q查询屏幕保护程序的状态
然后比较产生的字符串为活动时,即是运行结束进程的时候了
完整的脚本见:
http://blog.csdn.net/fdl19881/article/details/7420374
你说的XScreenSaverQueryInfo是linux的哪个API, 函数名是什么?
它就是函数名,XScreenSaver 的,man 文档里有。
嗯,网上找到了,ubuntu11.10的man里面好像没有。 谢了哈