2016-11-09 9 views
0

1つのスクリプトを使用して、異なる時間に複数のプロセスを開始したい。しかし、私は第2のプロセスを開始するためにそれを使用しようとすると、すでに実行されているという事実については考えていませんでした。だから私はこれを達成するのに役立つ何かを探しています。1つの起動スクリプトを使用して複数のプロセスを起動し、稼働し続ける

すべてのヘルプは非常に高く評価され、任意のより多くの情報が必要な場合は私が....

元を教えてくださいされています。私は

./startup.sh QWER start 

をやりたいの(後に再度実行します)

./startup.sh ASDF start 

基本的にスクリプトは、2つのパラメータを受け入れ、ちょうどキューマネージャが存在し、その後、case文を使用して確認してくださいます開始/停止する/ ...以下の状況など

スクリプトをチェック

#!/bin/bash 

#### Define vars ######################### 
qm=$1 
QM=${qm^^} 
stat=$2 
proc=[I]ntroscopeAgent_$QM 
MQMONITOR_BINDIR=/opt/bin/MQMonitor_$QM 
#### Define New QUEUE MANAGERS ########### 
declare -a QMGR=('QWER' 'ASDF' 'ZXCV' 'ASDF'); 
########################################## 

if [[ " ${QMGR[@]} " =~ " $QM " ]]; then 
case "$stat" in 
    start) 
     C=`ps -eo pid,args | grep "MQMonitor" | grep -c $proc` 
     if [ ${C} -gt 0 ]; then 
      proc_dtl=`ps -eo pid,args | grep "MQMonitor" | grep $proc` 
      echo -e "\n\033[7mMQMonitor is running:\033[0m ${proc_dtl}\n\n\033[1mEither stop or restart the process\n\033[0m" 
      exit 1 
     fi 
     echo -e "\nStarting MQMonitor MQ 9 " 
     ${MQMONITOR_BINDIR}/startMQMonitor.sh & 
     if [ $? -eq 0 ]; then 
      echo -e "\033[0mMQMonitor Started.. (Please see start up log in \033[1m$logfile \033[0m) \n\033[0m" 
     else 
      echo -e "\033[01;31mMQMonitor ${MQMONITOR_BINDIR}/startMonitor.sh didn't start cleanly\n\033[0m" 
     fi 
     ;; 
    stop) 
     echo -e "\nStopping MQMonitor ..." 
     ${MQMONITOR_BINDIR}/stopMQMonitor.sh 
     if [ $? -eq 0 ]; then 
      echo -e "\033[01;31mMQMonitor stopped\n\033[0m" 
     else 
      echo -e "\033[01;31mCouldn't stop MQMonitor\n\033[0m" 
     fi 
     ;; 
    status) 
     C=`ps -eo pid,args | grep "MQMonitor" | grep -c $proc` 
     if [ ${C} -gt 0 ]; then 
      PROC_ID=`ps -eo pid,args | grep "MQMonitor" | grep $proc | awk '{print $1}'` 
      echo -e "\n\033[1m\033#6MQMonitor running PID: ${PROC_ID}\n\033[0m" 
     else 
      echo -e "\nMQMonitor not running\n" 
     fi 
     ;; 
    restart|reload) 
     C=`ps -eo pid,args | grep "MQMonitor" | grep -c $proc` 
     if [ ${C} -gt 0 ]; then 
      echo "MQMonitor Running..." 
      echo "Stopping MQMonitor" 
      ${MQMONITOR_BINDIR}/stopMQMonitor.sh 
      if [ $? -eq 0 ]; then 
      echo "MQMonitor stopped" 
      else 
      echo "Couldn't stop MQMonitor" 
      exit 1 
      fi 
      echo "Stopped" 
      echo "Starting MQMonitor" 
      ${MQMONITOR_BINDIR}/startMQMonitor.sh & 
      if [ $? -eq 0 ]; then 
      echo "MQMonitor Started" 
      else 
      echo "MQMonitor ${MQMONITOR_BINDIR}/startMonitor.sh didn't start cleanly" 
      fi 
     else 
      echo "MQMonitor not running" 
      echo "Starting MQMonitor" 
      ${MQMONITOR_BINDIR}/startMQMonitor.sh & 
      if [ $? -eq 0 ]; then 
      echo "MQMonitor Started" 
      else 
      echo "MQMonitor ${MQMONITOR_BINDIR}/startMonitor.sh didn't start cleanly" 
      fi 
     fi 
     ;; 
    *) 
     echo -e $"\n\n\e[41mSYNTAX ERROR:\033[0m\tPlease Use Proper Syntax: QMGR {start|stop|status|restart}\n\e[41mEx:\033[0m\t\t./mqagent QPX1 status\n\n" 
exit 1 
esac 
else 
echo -e "\n\n\e[41mPlease enter a valid Queue Manager\033[0m\n\n" 
fi 
+0

スクリプトを2回実行すると、初めて実行されたときに同じパラメータが渡されたように見えます。私はこれを回避する方法を理解することはできません。 –

答えて

0

supervisordのように聞こえるかもしれません。

+0

お返事ありがとうございます。私は間違った質問をしたと思う。私は本来、問題はfg、bg、所有権などと関係があると思っていましたが、次の実行のためにPPを設定しなくてはなりませんでした。 –

0

位置パラメータを設定解除することで、次回の実行時に新しいパラメータを渡すことができました。 PPをクリアするために最後にシフトコマンドを追加しました。

関連する問題