jar、war包啟動、停止、重啟shell腳本


場景:jar包為例,war包是類似的;一個目錄中只有一個jar包,需要在jar包的同級目錄下,一個腳本實現jar包的啟停管理。

如有其他場景需要方法,請留言。

#!/bin/bash
# 下面一行是先獲取當前路徑,慣用寫法
work_dir=$(cd `dirname $0`; pwd)
# 判斷jar包,當前目錄下只能有一個jar包存在,如果不是則報錯
jar_num=`ls ${work_dir}/*.jar | wc -l`
if [ ${jar_num} -eq 0 ];then
    echo "Error: Can not find jar package in this jar home;please check!"
    exit 1
elif [ ${jar_num} -gt 1 ];then
    echo "Error: Find other jar package in this jar home; please check!"
    exit 1
fi
jar_name=`ls ${work_dir}/*.jar`

# 下面內容是服務執行部分 case "$1" in start) cd ${work_dir}
# jar啟動命令,可根據實際情況修改 nohup java -Xms1024m -Xmx1024m -jar ${jar_name} >/dev/null 2>&1 & sleep 3 echo "service ${jar_name} start" ;; stop)
# 獲取jar包的pid;以下是centos7的寫法;其他操作系統可自行定義 svc_pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'` len_pid=`echo ${svc_pid}|wc -c` if [ ${len_pid} -le 2 ];then echo "No need stop service ${jar_name}" else kill -9 ${svc_pid} sleep 3 echo "service ${jar_name} stopd" fi ;; restart) $0 stop sleep 2 $0 start ;; *) ## restart $0 stop sleep 2 $0 start ;; esac

 

使用方法:

將上面的內容寫到腳本文件,如boot.sh

啟動:[腳本路徑]/boot.sh start

重啟:[腳本路徑]/boot.sh restart  或者:[腳本路徑]/boot.sh

停止:[腳本路徑]/boot.sh stop


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM