shell檢查並啟動Java程式
阿新 • • 發佈:2019-02-17
場景
想在伺服器(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...