zoukankan      html  css  js  c++  java
  • 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
    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
      sleep 5
    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
      sleep 2
    fi
    tail -f $logFile
  • 相关阅读:
    HDU 3401 Trade
    POJ 1151 Atlantis
    HDU 3415 Max Sum of MaxKsubsequence
    HDU 4234 Moving Points
    HDU 4258 Covered Walkway
    HDU 4391 Paint The Wall
    HDU 1199 Color the Ball
    HDU 4374 One hundred layer
    HDU 3507 Print Article
    GCC特性之__init修饰解析 kasalyn的专栏 博客频道 CSDN.NET
  • 原文地址:https://www.cnblogs.com/hepengju/p/12297473.html
Copyright © 2011-2022 走看看