Linux啟動(dòng)Java程序jar包Shell腳本方式
Linux啟動(dòng)Java程序jar包Shell腳本
在Linux 環(huán)境中部署SpringBoot等Java項(xiàng)目時(shí)總是要重復(fù)的輸入一些命令
這里將命令編寫成一個(gè)可以執(zhí)行的shell腳本,只需要放置在和jar包同級別的目錄下,同時(shí)修改腳本內(nèi)置的一些變量后,方可正常使用
腳本使用
- 創(chuàng)建一個(gè)名為run.sh的腳本(腳本名稱根據(jù)自己想法即可),存放在與需要啟動(dòng)的jar包同級別目錄中
- 腳本內(nèi)容與本文提供的一致,記得修改APP_NAME參數(shù)的值
- 在存放路徑下輸入命令 bash run.sh status即可查看當(dāng)前jar包的運(yùn)行狀態(tài)
- 輸入命令 sh action.sh start即可運(yùn)行項(xiàng)目
- 命令一共支持四種,分別是:start|stop|restart|status
具體功能可以查看腳本代碼
#!/bin/bash #這里替換為程序位置 #注意:APP_NAME為jar文件名(而非路徑),且"="后面不能有空格 #此處的APP_NAME為打包后jar包名 #注意:如果包名攜帶日期或其他會(huì)變化的內(nèi)容,例如xxxx-1.0.0.20221110.release.jar,請修改此處的名稱為xxxx這類固定且能標(biāo)識(shí)服務(wù)的名稱,同時(shí)替換start方法中的啟動(dòng)命令 APP_NAME=lcz.jar #添加jar包路徑,方便在任何目錄下都可以運(yùn)行腳本啟動(dòng)服務(wù) APP_PATH=/root/lcz #使用說明,用來提示輸入?yún)?shù) usage() { echo "請輸入您進(jìn)行的操作: [start|stop|restart|status]" echo "例如: bash/run.sh start" exit 1 } #檢查程序是否在運(yùn)行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #啟動(dòng)命令執(zhí)行后輸出結(jié)果 start_log(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} 啟動(dòng)成功! pid=${pid}" tail ${APP_PATH}/run.log -f else echo "${APP_NAME} 啟動(dòng)失敗!請檢查后重試" fi } #啟動(dòng)方法 start(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} is already running. pid=${pid}" else nohup java -jar -Xmx512m -Xms512m ${APP_PATH}/${APP_NAME} > ${APP_PATH}/run.log & #如果APP_NAME攜帶可變內(nèi)容,請?zhí)鎿Q下方啟動(dòng)命令,符號 * 表示jar包名稱中變化的部分 #nohup java -jar -Xmx512m -Xms512m ${APP_PATH}/${APP_NAME}*.jar >${APP_PATH}/run.log >/dev/null 2>&1 & start_log fi } #停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid echo "${APP_NAME} 已關(guān)閉! pid=${pid}" else echo "${APP_NAME} is not running" fi #該腳本的特殊性:確保關(guān)閉所有openoffice進(jìn)程 soffice_stop } #輸出運(yùn)行狀態(tài) status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is not running." fi } #重啟 restart(){ stop echo "${APP_NAME} 準(zhǔn)備重啟..." sleep 5 start } #關(guān)閉openoffice soffice_stop(){ soffice_pid=`ps -e|grep soffice.bin |awk '{print $1}'` if [ -n "${soffice_pid}" ]; then kill -9 $soffice_pid echo "已關(guān)閉soffice.bin" fi } #根據(jù)輸入?yún)?shù),選擇執(zhí)行對應(yīng)方法,不輸入則執(zhí)行使用說明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos7切換啟動(dòng)內(nèi)核與切換啟動(dòng)模式的講解
今天小編就為大家分享一篇關(guān)于centos7切換啟動(dòng)內(nèi)核與切換啟動(dòng)模式的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04關(guān)于g++和gcc的相同點(diǎn)和區(qū)別詳解
下面小編就為大家?guī)硪黄P(guān)于g++和gcc的相同點(diǎn)和區(qū)別詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01LNMP下FTP服務(wù)器的安裝與使用方法(Pureftpd和Proftpd)
FTP是網(wǎng)站文件維護(hù)中使用比較多的,目前LNMP一鍵安裝包中有Pureftpd和Proftpd服務(wù)器安裝腳本2013-06-06Linux文件編輯命令vi詳細(xì)整理(總結(jié))
本篇文章主要介紹了Linux文件編輯命令詳細(xì)整理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07詳解如何在Ubuntu 20.04上安裝Xrdp服務(wù)器(遠(yuǎn)程桌面)
這篇文章主要介紹了詳解如何在Ubuntu 20.04上安裝Xrdp服務(wù)器(遠(yuǎn)程桌面),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07linux下通過Squid反向代理搭建CDN緩存服務(wù)器的配置方法
在移動(dòng)機(jī)房放置一臺(tái)CDN代理服務(wù)器,通過智能DNS解析,讓電信用戶直接訪問Web服務(wù)器、讓移動(dòng)用戶訪問CDN代理服務(wù)器,解決移動(dòng)用戶訪問Web服務(wù)器慢的問題2013-06-06