最近挂代理,老是挂掉,于是花了点时间,写了一个批处理。
每隔10秒检查一下命令是否启动,如果没有这个进程,重启进程。
凑合用用,如果内部锁死应该还是没用,如果进程掉了,可以使用
废话不多,直接放代码
#!/bin/sh
proc_name='命令'
#获取进程个数
proc_num()
{
num=`ps -ef | grep "${*}" | grep -v grep | wc -l`
return $num
}
#根据返回的进程数,判断时候要重启
chk_restart()
{
proc_num $1
procnum=$?
if [ $procnum -eq 0 ]
then
#启动命令
echo `date +%Y-%m-%d` `date +%H:%M:%S` "ReStart..." $1
eval $1 "> 1.log 2>&1 &"
else
echo `date +%Y-%m-%d` `date +%H:%M:%S` "Running..." $1
fi
}
while true
do
chk_restart "$proc_name"
#每隔多少秒
sleep 10
done