linux springboot jar包启动、停止脚本的编写

1.启动shell

#!/bin/sh

# start.sh

#get pwd
DIR_HOME="${BASH_SOURCE-$0}"
DIR_HOME="$(dirname "$DIR_HOME")"
PRGDIR="$(cd "${DIR_HOME}"; pwd)"


jarfile=$PRGDIR/test.jar


#get runing pid
pid=$(ps -ef | grep java | grep $jarfile | awk '{print $2}')

#nohup java  -jar   $jarfile    >/dev/null 2>&1 &
nohup java -jar  $jarfile uuh  --spring.profiles.active=pro >/dev/null 2>&1 &

pid=$(ps -ef | grep java | grep $jarfile | awk '{print $2}')
echo "INFO: $jarfile is running! pid=$pid"

1.1命令详解

  • BASH_SOURCE-$0:当前脚本全路径(D:/study_other/shell/demo/demo-chapter-1/test.sh到具体的哪个文件)

  • dirname命令截取给定路径的目录部分去除文件名(D:/study_other/shell/demo/demo-chapter-1)

  • jarfile(取值上面的jarfile),$ ()是执行小括号里面的命令并赋值给变量,${}是取大括号里面的变量值的意思

  • –spring.profiles.active=pro(配置启动环境spring的配置,这里配置pro的配置文件)

  • /dev/null 2>&1
    分解这个组合:“>/dev/null 2>&1” 为五部分

  1. ">"代表重定向到哪里,例如:echo “123” > /home/123.txt
  2. /dev/null 代表空设备文件
  3. 2 表示stderr标准错误
  4. & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
  5. 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 “1>/dev/null”
    这里的1和2指的是文件描述符。0:stdin 1:stdout 2:stderr

2.停止shell

#!/bin/sh

process=test

ifrun=$(ps -ef | grep $process | grep java)
if [ "$ifrun" != "" ];then
    kill -9 `ps -ef | grep $process | grep java | awk '{print $2}'`
    echo "INFO: $process is stoped!"
else
    echo "WARN: Not found $process running."

3.单纯的启动jar命令

# ssh窗口被锁定,终端关闭,jar程序停止
java -jar xx.jar

 #ssh窗口不被锁定,终端关闭,jar程序停止
java -jar xx.jar &   

#ssh窗口不被锁定,终端关闭,jar程序不会停止日志输出到nohup.out中,nohup表示一直执行,&后台运行
nohup java -jar xx.jar &

#ssh窗口不被锁定,终端关闭,jar程序不会停止,日志输出到重定向到log.txt中
nohup java -jar xx.jar >log.txt &     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值