在使用C/C++做服务时,服务进程常常因为各种原因死掉,为此需要将服务是守护起来,保证在服务死掉的时候可以重启
1.编写shell脚本,判断服务是否在运行,如果没有运行脚本自动重启服务。以下是一个脚本示例:
#!/bin/bash
CheckProcess()
{
#$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
return $PROCESS_NUM
}
CheckProcess "mgm"
CheckQQ_RET=$?
if [ $CheckQQ_RET -le 0 ];
then
export DISPLAY=:0;
/usr/bin/mate-terminal -x /home/start_mgm.sh
fi
CheckProcess "laiserver"
CheckQQ_RET=$?
if [ $CheckQQ_RET -le 0 ];
then
export DISPLAY=:0;
/usr/bin/mate-terminal -x /home/start_laiserver.sh
fi
其中定义一个CheckProccess()函数,通过ps -ef | grep "$1" | grep -v "grep" | wc -l 来获取对应传入名称的进程在系统中运行的个数。当进程个数为0时重新启动对应进程,这里我检测了mgm进程和laiserver进程,当进程个数为0的时候执行export DISPLAY=:0;和/usr/bi