我要维护一个服务器,写了一个服务器重启脚本。。内容如下:
#!/bin/sh
#---------------------------------------
PRO=load_test
TestFunc()
{
PROCESS_NUM=`ps -ef | grep $PRO | grep -v "grep" | wc -l`
echo "-------------GET $PRO num = $PROCESS_NUM"
if [ $PROCESS_NUM -eq 0 ];then
echo "----------return 0"
return 0
else
echo "----------return 1"
return 1
fi
}
echo "+++++++++++++++++++++++++++++++++++++"
while [ 1 ] ;do
TestFunc
TESTRET=$?
echo "return the value is $TESTRET"
#killall -9 testq 0 ];then
echo "$PRO is starting now ......"
./$PRO &
else
echo "$PRO is Running now ......."
fi
sleep 5
done
现在遇到如下问题:
因为服务器是在远程linux(ubuntu)运行的。。我把这个脚本放在了可执行程序同一个目录。正常情况下,当load_test dump了,脚本可以正常的重新启动。
但是有几次,load_test dump了,脚本没有没有重启程序。我想远程登录看看怎么回事,等我登录成功的时候 ,load_test 又重启了。。
以上现象,我觉得好像是我的脚本在后台运行时是不是休眠了,我登录又将脚本激活了。。。
这种现象感觉好奇怪,不知道具体原因是什么,求高手指教!!
spring999hf 于 2011-12-02 16:14:56发表:
[quote]程序上少了个判断吧
#killall -9 testq 0 ];then
这个位置后加个
if [ $TESTRET -eq "0" ]
then
这部分代码有的,拷贝的时候不知道为什么拷贝少了。。。
继续求解!!
年年年 于 2011-12-02 10:52:37发表:
程序上少了个判断吧
#killall -9 testq 0 ];then
这个位置后加个
if [ $TESTRET -eq "0" ]
then
coov 于 2011-12-02 08:42:27发表:
不懂