此脚本用来管理 SpringBoot 项目的进程状态。有提示功能。把脚本丢到项目文件夹, 添加执行权限即可。
如果 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.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 #!/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