zoukankan      html  css  js  c++  java
  • 杀死服务进程并重新启动,同时监听日志打印

    工作中部署新jar包后,需要重启jar包服务,每次需要4步操作:

    1. ps命令找到进程pid
    2. kill命令杀死进程
    3. jar命令启动jar包
    4. tail命令查看启动日志

    脚本stop2start.sh

    #!/bin/sh
    sp_pid=`ps -ef | grep management | grep -v grep | awk '{print $2}'`
    if [ -z "$sp_pid" ];
    then
     echo "[ not find sp-tomcat pid ]"
    else
     echo "find result: $sp_pid "
     kill -9 $sp_pid
    fi
    nohup java -jar management-0.0.1-SNAPSHOT.jar &
    tail -f nohup.out
    

    grep 后边修改为要关闭的进行名字,其他自己改
    授权为可执行脚本:chmod 777 stop2start.sh
    运行脚本: ./stop2start.sh

    升级版本, 增加日期备份

    #!/bin/bash
    echo "[ --更新项目-- ]"
    
    bakPath="bak/ROOT`date '+%Y%m%d'`"
    if  [ -d "$bakPath" ]; then
    	n=2
    	while [ -d "$bakPath" ];do
    		bakPath="bak/ROOT`date '+%Y%m%d'`_$n"
    		n=$(($n+1))
    	done
    fi
    if [ -d "ROOT" ]; then
            rm -rf "ROOT"
    fi
    
    mkdir ${bakPath} -p
    cp msjt_96271.jar ${bakPath}
    mv msjt_96271.jar /opt/msjt/static/jar
    echo "[ 备份结束 ]"
    
    sp_pid=`ps -ef | grep msjt_96271 | grep -v grep | awk '{print $2}'`
    if [ -z "$sp_pid" ];
    then
     echo "[ 未查询到 pid ]"
    else
     echo "项目进程: $sp_pid "
     kill -9 $sp_pid
    fi
    
    baktime="msjt_`date '+%Y%m%d %H:%M:%S'`.out"
    mkdir -p /opt/msjt/logs/$baktime
    mv /opt/msjt/logs/nohup.out /opt/msjt/logs/$baktime
    cp /opt/msjt/logs/$baktime ${bakPath}
    echo "[ 项目已关闭 ]"
    
    echo "[ 启动项目 ]"
    nohup java -jar /opt/msjt/static/jar/msjt_96271.jar --spring.profiles.active=pro --scheduleIsRun=true > /opt/msjt/logs/nohup.out 2>&1  &
    tail -f /opt/msjt/logs/nohup.out
    
  • 相关阅读:
    SIMULINK动态仿真集成环境
    自带计算器
    零知识证明
    2012年软件大赛校内选拔赛
    使用VC2005 Express版时找不到msvcr80d.dll文件
    DirectX 90 3D SetRenderState 设置渲染状态
    ofstream和ifstream详细用法
    IncrediBuild 进行联合编译
    环形缓冲区,魔戒lordrings,boost的circular_buffer
    vector中resize和reserve接口的异同
  • 原文地址:https://www.cnblogs.com/linyufeng/p/11551232.html
Copyright © 2011-2022 走看看