最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程。用于监控svn服务是否启动,如果服务不在则启动。
创建监控脚本svnmonit.sh
#! /bin/sh #进程名字可修改 PRO_NAME=svnserve PORT=58652 REP_DIR=/www/svndata while true ; do #用ps获取$PRO_NAME进程数量 NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l` #echo $NUM #小于1,重启进程 if [ "${NUM}" -lt "1" ];then echo "${PRO_NAME} was killed" ${PRO_NAME} -d -r ${REP_DIR} --listen-port ${PORT} fi done exit 0
主要是利用ps和wc,并结合svn启动命令进行svn进程的检测。
2、添加执行权限
chmod +x ./svnmonit.sh
3、设置开机启动
修改/etc/rc.local,在文件最后添加
/root/svnmonit.sh
4、在不重启系统的情况下启动svnmonit.sh
nohup ./svnmonit.sh &
nohup命令确保在终端退出以后svnmonit.sh继续执行。
参考资料:http://www.xker.com/page/e2015/03/172040.html