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