Linux啓動java服務腳本

在沒有自動部署的環境下,如果調試java 服務,每次都需要kill掉之前的服務,然後再啓動,雖然整個過程也只涉及如下三個命令,但是頻繁調試時還是讓人很崩潰的。

ps -ef | grep myjar#myjar爲服務名
kill -9 123456 #假設myjar的線程號爲123456
nohup java -jar -Xms1024m -Xms2048m myjar.jar & # 習慣使用nohup從後臺啓動。-Xms爲jvm 參數,&不要漏了

封裝成shell 腳本如下,命名爲run.sh:

#1,獲取myjar的進程號
PID=$(ps -ef|grep myjar| grep -v grep | awk '{print $2}')
#2,啓動myjar的函數
start(){
        nohup java -jar -Xms1024m -Xms2048m myjar.jar -p -i &
}
#3,判斷1中獲取的PID是否存在,即判斷myjar有沒有啓動
 if [ -z "$PID" ]
then
#4,日誌
    echo "Sart the myjar directly "
#5,myjar之前沒有啓動的話,這裏直接調用start函數
    start
else
#6,myjar之前啓動過且進程依然存活,則kill掉,然後調用start函數
    echo "kill the existing myjar process firstly."
    kill -9 $PID
    echo " $PID has been killed"
    start
fi

下次啓動時,進入到run.sh所在目錄直接./run.sh,沒有進入到所在目錄則需要帶上目錄,例如./x/x/x/run.sh

PS: run.sh的權限需要設置成當前用戶可以執行的狀態。關於修改文件權限請學習chmod命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章