专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > AIX

AIX sh脚本,该怎么解决

发布时间:2011-06-27 19:04:45 文章来源:www.iduyao.cn 采编人员:星星草
AIX sh脚本
我有6个进程proc -i 1, proc-i 2,proc -i 3, proc -i 4,proc -i 5, proc-i 6
我想一次性把他们拉起来,并且有掉的时候能自动拉起来
#!/bin/ksh

while true
do
var1=$(ps -ef | grep "sztcorc -i 1" |grep -v grep)
    if [ "$var1" ];then
     echo "进程1存在,......"
 sleep 3

    else
        echo "进程1不存在,将启动......"
 cd /sztc/sztc/bin
        ./sztcorc -i 1 
 sleep 5
    fi
    var2=$(ps -ef | grep "sztcorc -i 2" |grep -v grep)
    if [ "$var2" ];then
     echo "进程2存在,......"
 sleep 3

    else
        echo "进程2不存在,将启动......"
 cd /sztc/sztc/bin
        ./sztcorc -i 2 
 sleep 5
    fi

done
我写的这种不成功,不是太熟这个,不知道怎么写,请教大家
------解决方案--------------------
#!/bin/ksh

while true
do
   ps -ef 
------解决方案--------------------
 grep "sztcorc -i 1" 
------解决方案--------------------
grep -v grep
  if [ $? -eq 0 ];then
  echo "进程1存在,......"
sleep 3

  else
  echo "进程1不存在,将启动......"
cd /sztc/sztc/bin
  ./sztcorc -i 1 
sleep 5
  fi
done
上面的办法是利用shell执行结果$?来判断进程是否存在。

还有一种办法是计算grep活动的行数
abc=`ps -ef
------解决方案--------------------
grep "...."
------解决方案--------------------
grep -v grep`
if [ $abc -ge 1 ]; then       >= 1判断进程存在  -eq 0(=0)实际上就是进程不存在
   进程存在
fi
------解决方案--------------------
为什么不写一个循环呢?
set -A PROCS proc1 proc2 proc3 proc4 proc5 proc6
typeset -i n=0
for i in ${PROCS [@]}
    do
        PROCS_PID[$n]=`ps -ef
------解决方案--------------------
 grep ${i} 
------解决方案--------------------
 awk '{ print $2 }'`
        if [ PROCS_PID[$n]=` = "" ];then
             writeLog "*** ${i} has failed. " 
            return 1
        fi
        (( n = n + 1 ))
    done
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: