前言:
個(gè)人博客:www.wdcdbd.com
? 我們在linux部署.jar項(xiàng)目時(shí),都需要通過java -jar的形式來部署,每次都要手動停止,部署,這樣用起來會很麻煩。所以,這篇文章就是自己通過.sh腳本一鍵啟動,停止,重啟,查看狀態(tài),查看日志。這樣會方便一些。
一、編寫.sh腳本前準(zhǔn)備工作
- ?將你的java項(xiàng)目放到你linux習(xí)慣的位置
- 創(chuàng)建一個(gè).sh文件,名字自定義。
我就給他命名為Three.sh了,具體你可以自定義
注意??!:在編寫.sh腳本文件時(shí),不可以在windows環(huán)境下寫好之后再放到linux環(huán)境中,因?yàn)閮商紫到y(tǒng)使用的格式是不一樣的。Windows下?lián)Q行符號是“\r\n”,而linux下是“\n”沒有”\r”,當(dāng)shell腳本是在Windows下編寫的時(shí)候,默認(rèn)所有的換行符都是“\r\n”,linux下是沒辦法正確識別這個(gè)文件的。如果你已經(jīng)這樣做了,那么就要在linux下執(zhí)行以下命令來去除掉/r
?
sed -i 's/\r$//'? sh文件名.sh
二、編寫.sh腳本文件
?這是完整腳本代碼。為了讓大家更直觀的看到腳本文件中的所有命令,下邊我就將啟動,停止,重啟,查看狀態(tài),查看日志,這幾個(gè)命令拆開來講解。如果已經(jīng)對其有一些了解的話,可以直接使用這個(gè)完整的腳本代碼,進(jìn)行修改即可。
#!/bin/bash
# jar包路徑-你放置jar包的路徑,可自定義
HOME='/home/dblog'
# 啟動
start(){
cd $HOME
# 將java程序后臺啟動,并將啟動日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar > springBootThree-1.0.log 2>&1 &
# 打印字符串
echo "啟動成功"
}
# 停止
stop(){
# 查詢到項(xiàng)目的pid
tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}')
# 判斷是否為空
if [ -z "$tpid" ]
then
# 如果為空 則打印這句話
echo Application is already stpped
else
# 如果不為空則執(zhí)行
echo kill $tpid
# 關(guān)閉進(jìn)程
kill -9 $tpid
echo "程序已關(guān)閉"
fi
}
# 查看狀態(tài)
status(){
# 獲取pid的
pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)
if [ -z "$pid" ]
then
echo "程序不存在"
else
echo $pid
fi
}
# 查看日志信息
log(){
tail -f $HOME/springBootThree-1.0.log
}
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
log)
log
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "只能是{start|stop|log|restart}"
;;
esac
exit 0
0、.sh腳本格式
第一行必須是這個(gè),沒有什么為什么格式就是這樣
1、啟動
#!/bin/bash
# jar包路徑-你放置jar包的路徑,可自定義
HOME='/home/dblog'
# 啟動
start(){
cd $HOME
# 將java程序后臺啟動,并將啟動日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar > springBootThree-1.0.log 2>&1 &
# 打印字符串
echo "啟動成功"
}
2、停止
注意?。。ㄐ】樱?/strong> .sh腳本語法是強(qiáng)語法結(jié)構(gòu),所以格式很重要,使用if判斷時(shí),中間的條件左右必須有空格
# 停止
stop(){
# 查詢到項(xiàng)目的pid
tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}')
# 判斷是否為空
if [ -z "$tpid" ]
then
# 如果為空 則打印這句話
echo Application is already stpped
else
# 如果不為空則執(zhí)行
echo kill $tpid
# 關(guān)閉進(jìn)程
kill -9 $tpid
echo "程序已關(guān)閉"
fi
}
3、查看狀態(tài)
# 查看狀態(tài)
status(){
# 獲取pid的
pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)
if [ -z "$pid" ]
then
echo "程序不存在"
else
echo $pid
fi
}
4、查看日志
log(){
tail -f $HOME/springBootThree-1.0.log
}
?5、case語法
最后使用case語法 將其聯(lián)系起來即可
# 判斷外部輸入的是什么關(guān)鍵詞 (start|stop|status|log|restart)
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
log)
log
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "只能是{start|stop|log|restart}"
;;
esac
exit 0
6、?最后
保存當(dāng)前.sh文件,然后使用 chmod 777?文件名 變?yōu)榭蓤?zhí)行文件。
其實(shí)使用 chmod +x 文件名 給一個(gè)執(zhí)行權(quán)限就可以了,但是我閑麻煩,所以就直接設(shè)置最大權(quán)限啦。
?三、執(zhí)行.sh腳本
查看狀態(tài): ./Three.sh status
啟動項(xiàng)目:./Three.sh start
查看日志: ./Three.sh log
關(guān)閉項(xiàng)目: ./Three.sh stop
重啟項(xiàng)目: ./Three.sh restart
文章來源:http://www.zghlxwxcb.cn/news/detail-806025.html
這就是.sh腳本自動部署腳本的基本使用方式了,快去掌握吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-806025.html
到了這里,關(guān)于[含完整代碼]Linux使用.sh腳本自動部署(啟動|停止|狀態(tài)|日志)項(xiàng)目[超詳細(xì)]的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!