Spring Boot項目腳本(啓動,停止,重啓,狀態)通用版本

適用範圍:

       Spring Boot項目jar包啓動,停止,重啓,狀態等。

腳本執行:

  • 把腳本放到項目文件夾
  • 更改腳本權限,增加執行權限
chmod +x spring-boot.sh
  •  啓動服務
sh spring-boot.sh start jar包名

  正常情況,會出現"Start  gateway-server-1.0.0-exec.jar  success..."字樣

  • 查看狀態
sh spring-boot.sh status jar包名

  正常情況,會出現"gateway-server-1.0.0-exec.jar  is  running..."字樣

  • 停止服務
sh spring-boot.sh stop jar包名

    正常情況,會出現"Stop gateway-server-1.0.0-exec.jar"字樣

  • 重啓服務
sh spring-boot.sh restart jar包名

  正常情況會出現"Stop gateway-server-1.0.0-exec.jar","Start gateway-server-1.0.0-exec.jar success..."字樣

腳本代碼:

#!/bin/bash

SpringBoot=$2

if [ "$1" = "" ];
then
    echo -e "\033[0;31m 未輸入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
    exit 1
fi

if [ "$SpringBoot" = "" ];
then
    echo -e "\033[0;31m 未輸入應用名 \033[0m"
    exit 1
fi

function start()
{
	count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
	if [ $count != 0 ];then
		echo "$SpringBoot is running..."
	else
		echo "Start $SpringBoot success..."
		nohup java -jar $SpringBoot > /dev/null 2>&1 &
	fi
}

function stop()
{
	echo "Stop $SpringBoot"
	boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
	count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`

	if [ $count != 0 ];then
	    kill $boot_id
    	count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`

		boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
		kill -9 $boot_id
	fi
}

function restart()
{
	stop
	sleep 2
	start
}

function status()
{
    count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
    if [ $count != 0 ];then
        echo "$SpringBoot is running..."
    else
        echo "$SpringBoot is not running..."
    fi
}

case $1 in
	start)
	start;;
	stop)
	stop;;
	restart)
	restart;;
	status)
	status;;
	*)

	echo -e "\033[0;31m Usage: \033[0m  \033[0;34m sh  $0  {start|stop|restart|status}  {SpringBootJarName} \033[0m
\033[0;31m Example: \033[0m
	  \033[0;33m sh  $0  start esmart-test.jar \033[0m"
esac

sh腳本從window到linux啓動可能會遇到問題:在linux下執行的時候可能會提示找不到文件,例如spring-boot.sh:只需要vim spring-boot.sh,然後:set ff=unix,最後:wq即可

注意:

如果 jenkins 使用這個腳本, 需要在 java -jar 命令前添加 BUILD_ID=dontKillMe , 不然 jenkins 會殺掉進程。

參考: https://stackoverflow.com/questions/39169457/how-to-tell-jenkins-not-to-kill-processes-after-successful-execution-of-job-in-m

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章