红联Linux门户
Linux帮助

脚本不工作了。远程登录又能工作~!求解

发布时间:2011-12-01 17:36:46来源:红联作者:spring999hf
我要维护一个服务器,写了一个服务器重启脚本。。内容如下:
#!/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 又重启了。。

以上现象,我觉得好像是我的脚本在后台运行时是不是休眠了,我登录又将脚本激活了。。。
这种现象感觉好奇怪,不知道具体原因是什么,求高手指教!!
文章评论

共有 3 条评论

  1. spring999hf 于 2011-12-02 16:14:56发表:

    [quote]程序上少了个判断吧
    #killall -9 testq 0 ];then
    这个位置后加个
    if [ $TESTRET -eq "0" ]
    then

    这部分代码有的,拷贝的时候不知道为什么拷贝少了。。。
    继续求解!!

  2. 年年年 于 2011-12-02 10:52:37发表:

    程序上少了个判断吧
    #killall -9 testq 0 ];then
    这个位置后加个
    if [ $TESTRET -eq "0" ]
    then

  3. coov 于 2011-12-02 08:42:27发表:

    不懂