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

你可能感兴趣的:(部署,spring,boot,shell)