使用shell让其在系统空闲一段时间后自动结束指定进程
来源:互联网 发布:cctv1网络电视回看播放 编辑:程序博客网 时间:2024/06/07 03:36
(下面有代码)
事情起因:学校的上网账号 同一时间只能登一个,, 而实验室和宿舍都得使用这个账号上网
所以有时候在离开实验室回去时,会忘记将上网程序退出。导致回宿舍后没法上网, 又得打电话回去让别人帮忙退出。。。
所以才有此想法。
在windows上我是用的其自带的计划任务的方法:当系统空闲如15分钟时,就执行结束指定进程
现在有时候需要使用linux( ubuntu) , 上面没有类似的东西 ,,有个TMOUT ,但是是空闲到时间后,就注销用户(我不想注销)
故而找shell脚本解决的方法。
最后找到使用ubuntu 中的屏幕保护进程的状态(他的原理就是当系统空闲一定时间后,自动锁住屏幕), 而这个状态是可以通过
gnome-screensaver-comman -q命令查询的,,所以
shell如下:(我的上网程序是mentohust (锐捷的替代品))
#!/bin/sh# 本程序用来在空闲一定时间后,结束指定程序# #/usr/bin/mentohust -k # mentohust 可以用此方法结束mentohust进程taskkill(){if [ $# -ne 2 ]; then PID=`ps ax | grep $1 | awk '{if ($0 !~/grep/) {print $1}}'`# echo "PID=$PID"if [ -n "$PID" ]; then kill -9 $PID >/dev/null 2>&1fireturn 0fi#echo "num:$"return 1}PROCESS="mentohust"STATE_ACTIVE="屏幕保护程序状态为不活动"STATE_UNACTIVE="屏幕保护程序状态为活动"while truedoSTATE=`gnome-screensaver-command -q 2>/dev/null`if [ "$STATE" = "$STATE_UNACTIVE" ]; thentaskkill $PROCESSelif [ "$STATE" = "$STATE_ACTIVE" ]; theneval $PROCESS >/dev/null 2>&1 # 当登陆时,再执行进程. 我想结束的mentohust本来就是守护进程,自动后台执行fisleep 30done
让其自动登陆时启动的话,,
就在~/.bashrc最后加上如:
/home/xx/bin/killprocess & #"&"不能少,因为是后台运行
如果想改变时间,就改变屏幕保护程序的时间!!
如果不是桌面环境的话,只是终端时。 可以使用 w -u 命令显示出终端空闲时间 (只是个参考)
转载注明出版:http://blog.csdn.net/fdl19881/article/details/7420374
- 使用shell让其在系统空闲一段时间后自动结束指定进程
- 【VBScript Shell】使用vbs shell在指定时间段内自动结束某个进程
- 解决ssh空闲一段时间后自动断开
- centos 空闲一段时间后自动断网
- 让wince的背景光在系统空闲一定时间后自动关闭
- spark 集群启动后,worker 节点worker 进程一段时间后自动结束
- 使用目录选择对话框时,如何让其弹出后自动打开指定目录
- 让方法在一段时间后才执行
- 解决ssh空闲一段时间后自动断开的方法 关闭窗口
- 实现计算机空闲一段时间自动锁屏
- 父进程结束后,子进程自动结束
- 系统空闲进程
- Mac在一段时间不使用后,应用会自动退出的解决方法
- Toolbar在使用一段时间后错乱
- iOS 在闲置一段时间后执行指定动作
- VC++ 系统服务如何让服务进程结束后依赖windows自身把服务重启
- 使用java做订单失效(指定一段时间后)
- C#得到系统进程和结束某个指定的进程
- ural 1073. Square Country 动态规划
- 启用这个博客
- Base64编码解码C语言实现
- C函数传递结构体指针 题目地址:http://ac.jobdu.com/problem.php?id=1061
- 禁用UITextView和用户交换信息,复制、剪贴
- 使用shell让其在系统空闲一段时间后自动结束指定进程
- Web service
- Launcher——拖放功能深入研究 (转)
- Android 用户界面---定制组件(Custom Components)(一)
- php导出excel(多种方法)
- Dom4j遍历解析XML测试
- 扭曲变换加密
- php中常用的数组函数
- 2012年 上半年 第五周 C++程序设计 (十四)