zoukankan      html  css  js  c++  java
  • shell脚本自动部署jar包

    #!/bin/bash
    # 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;
    
    APP_NAME=xxxx-0.0.1-SNAPSHOT.jar
    APP_LOG_NAME=xxx.log
    
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh $APP_NAME.sh [start|stop|restart|status]"
        exit 1
    }
    #检查程序是否在运行
    is_exist() {
        pid=$(ps -aux | grep $APP_NAME | grep -v grep | grep -v deploy | awk '{print $2}')
        #如果不存在返回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 >> $APP_LOG_NAME 2>&1 &
        fi
    }
    #停止方法
    stop() {
        echo "开始关闭java应用"
        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
  • 相关阅读:
    oracle中常用的函数
    请求转发和URL重定向的原理和区别
    servlet的生命周期和servlet的继承关系
    Jdbc来操作事物 完成模拟银行的转账业务
    Map的嵌套 练习
    正则表达式练习
    学习 day4 html 盒子模型
    学习day03
    学习day02
    学习day01
  • 原文地址:https://www.cnblogs.com/difs/p/13353191.html
Copyright © 2011-2022 走看看