シェル・モニター・プロセスの状態、自己開始

真、crontabファイルを使用しなかったシェルスクリプトを監視し、によって達成されます

#!/ binに/ bashの
ソースは/ etc / profile 

appnameに=オーロラゲートウェイ・プロバイダ-1.3.1_build2.jar [#]プロセス名JPS表示
APP_PATH =は/ opt /ワークスペース/オーロラ -gateway /# 、[app_script親ディレクトリそのような開始モードとして嵌合開始モード、オーロラ・ゲートウェイであるSH sbinに/ app.shスタート] 
app_script = app.sh#起動スクリプト] [ 

        #以下変更する必要
        機能モニタ(){ 
                monitorOutputLog = /データ/オーロラゲートウェイ。/ログ/モニター/ $(DATE '+ M %%% D Y')ログ
                IF [ "$ monitorOutputLog" -f!];その後、
                                "$ monitorOutputLog"をタッチ
                        Fiの

                PID =を$(JPS | -v VAR = $ awkのAPPNAME '{場合($ 2〜 VAR)$ 1印刷}')#awk -v シェル変数はAPPNAME AWK発現を導入示す; {($ 2〜VAR場合 )$ 1 [プリント画像} 判定は、PIDを印刷するように、類似していません
                (キル-0 $ PID 2>の場合は/ dev / nullに);その後、#キル-0 $ PID:? pidのプロセス、エコー$ 0返された存在があるかどうかをチェックする; 2>を/ dev / null;ノーリターン1は存在しない 。 表現は出力誤差のない
                エコー"$(日付'+%Y-%M-%D%H:%M:%のS')$ appnameのが実行されている" >> $ monitorOutputLogの
                睡眠15 #sleep 15秒
                、他の
                        CD $ APP_PATH && shのsbinに/ $ app_script開始
                        PID = $(JPSを|のawk -v VAR = $ appnameの'{するif($ 2〜VAR)$ 1 [プリント画像}')
                        であれば(キル-0 $ PID 2>を/ dev / null);その後、
                        エコー「$(日「+ %Y-%M-%D%H:%M:%S ')$ appnameの启动成功">> $ monitorOutputLog 
                        スリープ15 
                        エコー" $(日付' +%Y-%M-%D%H:%M :%S ')$ appnameの启动失败」>>$ monitorOutputLogの
                        睡眠15 
                        Fiの
                Fiの
        } 

trueにしばらく
やる
モニター
DONE 


:プロシージャを使用して#を
#[ルート] -pます。mkdir /データ/オーロラゲートウェイ/ログ/モニター/ 
#[ルート]を展開しchownコマンド:展開/データ/オーロラゲートウェイ/ログ/モニター/ 
#コピー/ OPT /ワークスペース/オーロラ・ゲートウェイへaurora_gateway_monitor.sh / カタログ
展開/opt/workspace/aurora-gateway/aurora_gateway_monitor.sh:#[ルート] CHOWN展開
#chmodの+ X / OPT /ワークスペース/オーロラゲートウェイ / aurora_gateway_monitor。 SHの
#[ルート] SU -配備
#CDの/ opt /ワークスペース/オーロラゲートウェイ/ 
#./aurora_gateway_monitor.sh& 
対数正規出力#を確認するかどうか

  

おすすめ

転載: www.cnblogs.com/wooluwalker/p/12115736.html
おすすめ