SpringBoot应⽤启动并查看⽇志的Shell脚本#!/bin/bash
>>>>>>>>>>>>
# ⽇期:2020-02-10
# 作者:何鹏举
# 说明:根据传⼊参数的jar包名称,重启SpringBoot应⽤并查看⽇志
>>>>>>>>>>>>
if [[ -z $1 ]]; then
echo"Usage: ./restartApp.sh jarName [jenkins]"
echo"    第⼆个参数⽤于jenkins⾃动打包时, 不⾃动查看⽇志"
exit 1
fi
# 变量名字
scriptName=$0
grep命令查看进程jarName=$1
appName=${jarName%.*}
logFile=$HOME/app/log/$appName/$appName.log
echo"查看⽇志命令: tail -f "$logFile
# 到进程号并关闭应⽤, 注意需要去掉grep命令和脚本本⾝命令的进程
pid=`ps -ef | grep $jarName | grep -v grep | grep -v $scriptName | awk'{print $2}'`
if [[ -n $pid ]]; then
echo"到应⽤"$appName"的进程号:"$pid",尝试正常停⽌应⽤"
kill $pid
sleep5
fi
pid=`ps -ef | grep $jarName | grep -v grep | grep -v $scriptName | awk'{print $2}'`
if [[ -n $pid ]]; then
echo"5秒内没有正常停⽌应⽤:"$appName", 进程号:"$pid",下⾯进⾏强制停⽌"
kill -9 $pid
fi
# 启动应⽤
nohup java  -jar -Xms256M -Xmx512M $jarName --eureka.instance.ip-address=101.132.97.183 >> /dev/null 2>&1 & echo"正在启动应⽤..."
# jenkins启动的时候不查看⽇志(简单判断, 第⼆个参数不为空则是jenkins启动的)
if [[ -n $2 ]]; then
echo"jenkins启动, 不⾃动查看⽇志"
exit 0
fi
# 查看⽇志(⽇志⽂件不存在(⾸次启动),则休息下再tail)
if [[ ! -f $logFile ]]; then
sleep2
fi
tail -f $logFile

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论