Shell實現判斷程序是否存在並重新啟動指令碼分享

NO IMAGE

簡潔版:


#! /bin/bash
# author caoxin
# time 2012-10-10 
# program : 判斷進行是否存在,並重新啟動


function check(){
  count=`ps -ef |grep  |grep -v "grep" |wc -l`
  #echo $count
  if [ 0 == $count ];then
    nohup python /runscript/working/ &
  fi
}

check behaviors.py

詳細版:


#!/bin/bash
#

#呼叫關閉jboss程序指令碼
stopMethodServer.sh

#列印出當前的jboss程序:grep jboss查詢的jboss程序,grep -v "grep" 去掉grep程序
jmsThread=`ps -ef | grep gdms | grep jboss | grep -v "grep"`
echo $jmsThread

#查詢jboss程序個數:wc -l 返回行數
count=`ps -ef | grep gdms | grep jboss | grep -v "grep" | wc -l`
echo $count

sec=7
#開始一個迴圈,以判斷程序是否關閉

for var in 1 2
do
 if [ $count -gt 0 ]; then
  #若程序還未關閉,則指令碼sleep幾秒
  echo sleep $sec second the $var time, the JMS thread is still alive
  sleep $sec
 else
  #若程序已經關閉,則跳出迴圈
  echo "break"
  break
 fi
done

#if [ $count -eq 0 ]; then
# echo "nohup startMethodServer.sh &"
# nohup startMethodServer.sh &
#else
# echo "It's better to check the thread!!!"
#fi

#呼叫啟動指令碼
nohup startMethodServer.sh &