一行命令實(shí)現(xiàn)Java項(xiàng)目啟動(dòng)停止和重啟方式
功能
- 默認(rèn)不入?yún)⑹菃?dòng)項(xiàng)目
- 支持項(xiàng)目啟動(dòng)、停止、重啟:start | stop | restart
- 支持自定義java路徑和jvm參數(shù)
使用
[root@master Desktop]# ./bin/demo-sh_start.sh start 程序名稱: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名稱: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序未運(yùn)行 開(kāi)始啟動(dòng)程序 [root@master Desktop]# ./bin/demo-sh_start.sh stop 程序名稱: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名稱: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序已運(yùn)行,PID:[ 10864 ] 停止程序 [root@master Desktop]# ./bin/demo-sh_start.sh restart 程序名稱: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名稱: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序未運(yùn)行 重啟程序 0
腳本
#!/bin/sh
# 服務(wù)和java配置
appName=%s # 這里替換jar路徑, 如:./demo-app.jar, 建議使用絕對(duì)路徑
JAVA_HOME=java
JAVA_OPT="-Xmx1024M -Xms256M"
# 日志
logName=$(basename ${appName} .jar)
# 輸出程序信息
echo "程序名稱:" ${appName}
echo "日志名稱:" ${logName}
echo "Java配置:" ${JAVA_OPT}
# 判斷是否已經(jīng)啟動(dòng)
v_pid=$(ps -ef | grep ${logName} | grep -v grep | awk '{print $2}')
if [ -z $v_pid ]; then
echo "程序未運(yùn)行"
else
echo "程序已運(yùn)行,PID:[" ${v_pid} "]"
fi
if [ $# = 0 ]; then
# 默認(rèn)直接啟動(dòng)程序
if [ -z $v_pid ]; then
echo "開(kāi)始啟動(dòng)程序"
else
echo "終止本次啟動(dòng)"
exit 1
fi
# 運(yùn)行java
nohup ${JAVA_HOME} -jar ${JAVA_OPT} ${appName} >>${logName}.log 2>&1 &
else
# 停止
if [ $1 = "stop" ]; then
s_killRes=$(kill ${v_pid})
echo "停止程序" ${s_killRes}
exit 0
# 重啟
elif [ $1 = "restart" ]; then
# 重啟
if [ -z $v_pid ]; then
s_killRes="0"
else
s_killRes=$(kill ${v_pid})
fi
echo "重啟程序" ${s_killRes}
# 運(yùn)行
elif [ $1 = "start" ]; then
if [ -z $v_pid ]; then
echo "開(kāi)始啟動(dòng)程序"
else
echo "終止本次啟動(dòng)"
exit 1
fi
else
echo "未知的指令, 請(qǐng)輸入 [start | stop | restart]"
exit 1
fi
# 啟動(dòng)
nohup ${JAVA_HOME} -jar ${JAVA_OPT} ${appName} >>${logName}.log 2>&1 &
fi
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java項(xiàng)目啟動(dòng)成功、失敗信息實(shí)時(shí)反饋提醒問(wèn)題(郵件或者短信)
- java項(xiàng)目啟動(dòng)失敗的問(wèn)題及解決
- 解決Java項(xiàng)目啟動(dòng)報(bào)錯(cuò):Logback?configuration?error?detected:問(wèn)題
- 解決JAVA項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息的問(wèn)題
- Javaweb項(xiàng)目啟動(dòng)Tomcat常見(jiàn)的報(bào)錯(cuò)解決方案
- java 實(shí)現(xiàn)web項(xiàng)目啟動(dòng)加載properties屬性文件
相關(guān)文章
Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解
這篇文章主要介紹了Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05
@FeignClient?path屬性路徑前綴帶路徑變量時(shí)報(bào)錯(cuò)的解決
這篇文章主要介紹了@FeignClient?path屬性路徑前綴帶路徑變量時(shí)報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之校園一卡通系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+Springboot+Maven+mybatis+Vue+mysql+wd開(kāi)發(fā)的校園一卡通系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有校園一卡通系統(tǒng)該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01
Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能示例
本篇文章主要介紹了Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
SSM框架中entity mapper dao service controll
這篇文章主要介紹了SSM框架中entity mapper dao service controller層的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Javaweb開(kāi)發(fā)中通過(guò)Servlet生成驗(yàn)證碼圖片
這篇文章主要為大家詳細(xì)介紹了Javaweb開(kāi)發(fā)中通過(guò)Servlet生成驗(yàn)證碼圖片的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
rocketMQ如何避免消息重復(fù)消費(fèi)問(wèn)題
這篇文章主要介紹了rocketMQ如何避免消息重復(fù)消費(fèi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
JavaWeb之Servlet注冊(cè)頁(yè)面的實(shí)現(xiàn)示例
注冊(cè)頁(yè)面是很多網(wǎng)站都會(huì)是使用的到,本文主要介紹了JavaWeb之Servlet注冊(cè)頁(yè)面的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
JAVA利用順序表實(shí)現(xiàn)“楊輝三角”的思路及代碼示例
楊輝三角形是中國(guó)古代數(shù)學(xué)的杰出研究成果之一,是我國(guó)北宋數(shù)學(xué)家賈憲于1050年首先發(fā)現(xiàn)并使用的,這篇文章主要介紹了JAVA利用順序表實(shí)現(xiàn)楊輝三角的思路及代碼示例,需要的朋友可以參考下2025-01-01

