Linux小技巧3--防止程序挂掉的shell脚本

Linux小技巧3--防止程序挂掉的shell脚本

 

在一个实际项目中,很多时候需要保证程序或软件总是运行的,只有这样才能将相关损失降至最低;可是实际中由于软件自身质量和外部因素,很难保证程序持续运行的,此时就需要写一个程序或者脚本,用来监控目标程序,只要发现目标程序挂掉了该脚本就在此让其运行起来,从而保证软件的可靠性!

 

以下是本人写的一个shell脚本程序,其基本思想是用ps命令将所有进程信息写到文档中,然后用grep从文档中查找目标程序,若找到则不管,没找到则执行目标程序使其重启即可!

 

shell脚本如下:

#!/bin/sh

#检测程序(/kjd/gateway)是否运行,未运行则启动该程序

i=1
while [ i=1 ]
do
cd /kjd/doc
echo "I'm KJD!"
ps >/kjd/doc/process
var1= grep gateway /kjd/doc/process
#echo $var1
#declare -i a=$?
if [ $? -eq 0 ];
then 
echo "gateway is running!"
else 
echo "gateway is dead!"
/kjd/gateway
fi
rm /kjd/doc/process
sleep 5
done

最后,若需要让电脑开机就能启动改程序,只需将其添加到 /etc/rc.local (ubuntu)中即可,即将以下命令加到rc.local中:

/YourPath/code/KeepRunning.sh &

注意:
(1)需要添加在exit 0之前
(2)此处为ubuntu的系统的启动,其它系统需根据实际情况添加到对应的文件中!

(3)如果在终端执行以上脚本的时候脚本正常工作,但是退出终端时候发现脚本也被关闭了,此时需要使用nohup功能,该功能将忽略所有挂断(SIGHUP)信号,因此退出终端后脚本正常执行,使用方法如下: 

nohup /YourPath/code/KeepRunning.sh &

你可能感兴趣的:(Linux基础操作及使用技巧,Linux下程序自启动,Linux下防止程序挂掉,nohup)