背景
因为自己有一台centos的服务器,上面安装了gone桌面和chrome的浏览器,因为需要长期打开chrome的插件达到一个自动签到的目的,但是个人又总是习惯在用完chrome之后随后关闭chrome,所以需要一个定时的脚本,可以定时检查chrome是否打开,没有的打开chrome浏览器使自动签到的一些插件可以正常运行。
关键点
因为脚本是后台任务,后台脚本要打开桌面版本的浏览器,所以首先需要获取桌面显示的一些信息。
找出关键字:
$ xdpyinfo |grep 'name of display'
name of display: :15.0
其中 :15.0 为关键字,大概的意思是显示的表示为 :15.0
在以下的脚本中判断chrome有没有打开,如果没有的话输入桌面显示变量 :15.0 并且打开chrome。
关键脚本 open-chrome.sh
#!/bin/bash
echo "系统开始运行:$(date "+%Y-%m-%d %H:%M:%S")"
PROC_NAME='chrome'
ProcNumber=`ps -ef |grep -w ${PROC_NAME}|grep -v grep|wc -l`
echo $ProcNumber
echo "获取 ${PROC_NAME} 进程数:$ProcNumber"
if [ $ProcNumber -le 5 ];then
echo '检测到当前无chrome运行,开始运行chrome'
export DISPLAY=:15 && google-chrome
else
echo '检测到当前chrome正在运行,等待下次检测。'
fi
echo "系统结束运行:$(date "+%Y-%m-%d %H:%M:%S")"
echo ""
echo ""
echo ""[fuwj@dell-server ~]$
使用centos自带的定时调度框架,每六十分钟检测一次。
crontab -e
*/60 * * * * nohup /home/fuwj/task/open-chrome.sh >> /home/fuwj/task/chrome-open.log 2>&1 &