1. 程式人生 > >shell檢查並啟動Java程式

shell檢查並啟動Java程式

場景

想在伺服器(Linux)上面執行自己寫的Jar程式時,通常做法是

java -jar config.jar
#或者讓其後臺啟動
nohup java -jar config.jar &

如此一來程式就能啟動。不過這樣不夠人性化或者說不夠優雅,更好的方式應該是先判斷config.jar是否已經在執行,只有在未執行的情況下才執行啟動。

方案

#!/bin/sh
#NAME變數填寫jar包的名字,儘可能唯一
NAME="config.jar"
RUN=0

#迴圈,為了讓指令碼一直執行監控
while [ $RUN -eq 0 ]
do
    DTTERM=`jps | grep $NAME
` #匹配程式 if [ -n "$DTTERM" ] then echo "PID=$( jps | grep "$NAME") is running..." RUN=$(( $RUN + 1 )) #正確輸入資訊到日誌檔案 else filepath=$(cd "$(dirname "$0")"; pwd) echo "$NAME is not start! Going to start(dir=$filepath)..." echo > $filepath/log.out && nohup java -jar $filepath
/$NAME > $filepath/log.out & fi sleep 2 # 每次監測時間60秒 done exit 0

將上面的程式碼儲存為start.sh,與config.jar同一目錄,結構如下

這裡寫圖片描述

並賦予許可權

chmod +x start.sh

然後執行即可

root@xxxxxx# sh start.sh
PID=4232 config.jar is running...