Linux腳本啟動jar包方式
注意:
以下腳本筆者是在Windows上編輯的,因此默認格式是dos。
如果在Linux上使用,請使用vi命令編該文件,改為Unix格式。
筆者使用的SpringBoot + jsp 因此使用的是war包,如果你使用的是jar包,在文中用到war的地方改成jar就行。
一:腳本auto_deploy.sh
使用該腳本只需要修改JAR_NAME(改成自己的)、LOG_PATH(改成自己的)、腳本格式(改成Unix格式)這三點就行了。
#!/bin/bash # 定義變量 # 要運行的jar包路徑,加不加引號都行。 注意:等號兩邊 不能 有空格,否則會提示command找不到 JAR_NAME="/xxx/xxx/xxx/xxx.war" # 日志路徑,加不加引號都行。 注意:等號兩邊 不能 有空格,否則會提示command找不到 LOG_PATh=/export/Logs/main.log # 如果輸入格式不對,給出提示! tips() { echo "" echo "WARNING!!!......Tips, please use command: sh auto_deploy.sh [start|stop|restart|status]. For example: sh auto_deploy.sh start " echo "" exit 1 } # 啟動方法 start() { # 重新獲取一下pid,因為其它操作如stop會導致pid的狀態(tài)更新 pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` # -z 表示如果$pid為空時執(zhí)行 if [ -z $pid ]; then nohup java -jar $JAR_NAME > /dev/null 2>&1 & pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` echo "" echo "Service ${JAR_NAME} is starting!pid=${pid}" echo "........................Here is the log.............................." echo "....................................................................." tail -f $LOG_PATh echo "........................Start successfully!........................." else echo "" echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart." echo "" fi } # 停止方法 stop() { # 重新獲取一下pid,因為其它操作如start會導致pid的狀態(tài)更新 pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` # -z 表示如果$pid為空時執(zhí)行。 注意:每個命令和變量之間一定要前后加空格,否則會提示command找不到 if [ -z $pid ]; then echo "" echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!" echo "" else kill -9 $pid echo "" echo "Service stop successfully!pid:${pid} which has been killed forcibly!" echo "" fi } # 輸出運行狀態(tài)方法 status() { # 重新獲取一下pid,因為其它操作如stop、restart、start等會導致pid的狀態(tài)更新 pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` # -z 表示如果$pid為空時執(zhí)行。注意:每個命令和變量之間一定要前后加空格,否則會提示command找不到 if [ -z $pid ];then echo "" echo "Service ${JAR_NAME} is not running!" echo "" else echo "" echo "Service ${JAR_NAME} is running. It's pid=${pid}" echo "" fi } # 重啟方法 restart() { echo "" echo ".............................Restarting.............................." echo "....................................................................." # 重新獲取一下pid,因為其它操作如start會導致pid的狀態(tài)更新 pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` # -z 表示如果$pid為空時執(zhí)行。 注意:每個命令和變量之間一定要前后加空格,否則會提示command找不到 if [ ! -z $pid ]; then kill -9 $pid fi start echo "....................Restart successfully!..........................." } # 根據(jù)輸入?yún)?shù)執(zhí)行對應方法,不輸入則執(zhí)行tips提示方法 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) tips ;; esac
注意事項:
- -z 命令表示如果$pid為空時執(zhí)行。 注意:每個命令和變量之間一定要前后加空格,否則會提示command找不到
- 要運行的jar包路徑,加不加引號都行。 注意:等號兩邊 不能 有空格,否則會提示command找不到
二:更改腳本格式
注意:以下腳本筆者是在Windows上編輯的,因此默認格式是dos。
如果在Linux上使用,請使用vi命令編該文件,改為Unix格式。
第一步
上傳腳本文件到Linux系統(tǒng)后,使用vi命令編輯該腳本文件:
vi auto_deploy.sh
第二步
在Esc模式下冒號輸入命令set ff回車就能看到,該腳本是Windows系統(tǒng)的dos格式
如下圖:
第三步
在Esc模式下冒號,輸入修改格式命令set ff=linux,然后回車(回車后Linux系統(tǒng)并沒有提示),完事后還是在Esc模式下輸入寫入保存命令:wq。
:set ff=linux
:wq
如下圖
三:腳本運行截圖
服務非啟動狀態(tài)下截圖
sh auto_deploy.sh
sh auto_deploy.sh stop
sh auto_deploy.sh status
服務啟動狀態(tài)下截圖
sh auto_deploy.sh start
再次啟動一下試試(此時會有提示:服務已經(jīng)啟動,啟動狀態(tài)下請使用重啟命了):
查看狀態(tài)(提示正在運行):
sh auto_deploy.sh status
重啟試試:
sh auto_deploy.sh restart
停掉服務試試:
sh auto_deploy.sh stop
再次輸入stop命令(給出提示:服務沒有運行,沒必要停止?。?/p>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用iptable和Firewalld工具來管理Linux防火墻連接規(guī)則
今天小編就為大家分享一篇關(guān)于使用iptable和Firewalld工具來管理Linux防火墻連接規(guī)則的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-09-09Linux下查看壓縮文件內(nèi)容的10種方法(小結(jié))
這篇文章主要介紹了Linux下查看壓縮文件內(nèi)容的10種方法(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11linux kernel 打印函數(shù)指針對應的函數(shù)名方法
下面小編就為大家?guī)硪黄猯inux kernel 打印函數(shù)指針對應的函數(shù)名方法。小編覺得挺不錯的?,F(xiàn)在就分享給大家。也給大家做個參考。一起跟隨小編過來看看吧2016-12-12詳解Linux用戶態(tài)與內(nèi)核態(tài)通信的幾種方式
這篇文章主要介紹了詳解Linux用戶態(tài)與內(nèi)核態(tài)通信的幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06centos系統(tǒng)安裝Kubernetes集群步驟
大家好,本篇文章主要講的是centos系統(tǒng)安裝Kubernetes集群步驟,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01