linux停止boot服务器,Linux 启动停止SpringBoot jar 程序部署Shell 脚本

在启动jar所在目录下编辑文件:

vi catalina.sh

输入以下内容:#!/bin/bash

#这里可替换为你自己的执行程序

APP_NAME=learn-boot.jar

#使用说明,用来提示输入参数

usage() {

echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"

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

}

#启动方法

start(){

is_exist

if [ $? -eq "0" ]; then

echo "${APP_NAME} is already running. pid=${pid} ."

else

BUILD_ID=dontKillMe

nohup java -jar $APP_NAME > ./catalina.log &

fi

}

#停止方法

stop(){

is_exist

if [ $? -eq "0" ]; then

kill -9 $pid

else

echo "${APP_NAME} is not running"

fi

}

#输出运行状态

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

start

}

#根据输入参数,选择执行对应方法,不输入则执行使用说明

case "$1" in

"start")

start

;;

"stop")

stop

;;

"status")

status

;;

"restart")

restart

;;

*)

usage

;;

esac

以下为使用示例

启动:catalina.sh start

停止:catalina.sh stop

重启:catalina.sh restart

查看运行状态:catalina.sh status

注意:

在if判断条件后,than语法前需要加上;,如if [ -z "${pid}" ]; than,同时注意than前需要加个空格。

后记

在使用jenkins做持续集成过程中,发现无法调用启动命令进行启动,手动启动则正常

解决办法:在执行启动命令前添加“BUILD_ID=dontKillMe”,如下所示:BUILD_ID=dontKillMe

nohup java -jar $APP_NAME > ./catalina.log &

完美解决。网上有说setsid可解决,本人尝试发现和nohup效果一样,不加“BUILD_ID=dontKillMe”都启动不了,加了都可以正常启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值