zoukankan      html  css  js  c++  java
  • Linux shell脚本启动 停止 重启jar包

    最近做的微服务jar包想弄在持续集成中自动化部署,所以首先得有一个操作jar包的脚本

    只需将jar文件的路径替换到APP_NAME的值就可以了,其他不用改

    注意:window编辑的shell文件,通过WinSCP上传的Linux服务器,需要改变文件的格式(查看文件格式,vim编辑后输入 :set ff),还有环境变量,一定要配置啊

    修改格式操作步骤:

    # vim robotcenter.sh 

    然后输入  set:ff=unix

    # :wq!  保存退出

    复制代码
    #!/bin/bash
    export JAVA_HOME=/root/tools/jdk1.8.0_181
    export JRE_HOME=/$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    

    这里可替换为你自己的执行程序,其他代码无需更改

    APP_NAME=/root/app/springBoot/robotcenter.jar

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

    usage() {
    echo "Usage: sh robotcenter.sh [start|stop|restart|status]"
    exit
    1
    }

    检查程序是否在运行

    is_exist(){
    pid=ps -ef|grep $APP_NAME|grep -v grep|awk <span style="color: #800000">'</span><span style="color: #800000">{print $2}</span><span style="color: #800000">'</span><span style="color: #000000">

    如果不存在返回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
    nohup java
    -jar ${APP_NAME} >robotcenter.out 2>&1 &
    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
    sleep 5
    start
    }

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

    case "$1" in
    "start")
    start
    ;;
    "stop")
    stop
    ;;
    "status")
    status
    ;;
    "restart")
    restart
    ;;
    *)
    usage
    ;;
    esac

    复制代码
  • 相关阅读:
    HDU 3586 二分答案+树形DP判定
    POJ 3140 树形DP
    POJ 1741 树的点分治
    POJ 1655 求树的重心
    CF 219D 树形DP
    HDU 2196树形DP(2个方向)
    HDU 1520 树形DP入门
    POJ 1159 Palindrome(最长公共子序列)
    树状数组 区间更新 区间查询
    HDU 1556 BIT区间修改+单点查询(fread读入优化)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10069271.html
Copyright © 2011-2022 走看看