最近搭建的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