美文网首页技术篇
常用的启动和停止shell脚本

常用的启动和停止shell脚本

作者: hangzhi | 来源:发表于2020-05-11 08:17 被阅读0次

    start.sh

    • 定义变量: 服务名/部署路径/服务输出日志路径/启动文件路径
    • 检查是否启动: 使用 ps /grep/awk命令 配合 | 一起使用 没启动继续下面的
    • 设置JVM参数: JAVA_OPTS
    • 后台启动应用:nohup java -jar 命令
    • 再次检查是否启动
    • shell脚本示例:
    #!/bin/bash
    
    #启动服务名称
    SERVER_NAME=test
    #服务部署路径
    DEPLOY_DIR=/opt/app/test
    # 服务日志输出路径
    STDOUT_FILE=${DEPLOY_DIR}/logs/test.log
    #服务启动的jar或war
    WAR_FILE=${DEPLOY_DIR}/test.jar
    
    PIDS=`ps -f | grep java | grep "${DEPLOY_DIR}" |awk '{print $2}'`
    if [ -n "$PIDS" ]; then
        echo ">>> ERROR: The ${SERVER_NAME} already started!"
        echo ">>> PID: $PIDS"
        exit 1
    fi
    
    #jvm参数配置
    JAVA_OPTS="-server -Xmx2g -Xms2g "
    echo -e ">>> Starting the ${SERVER_NAME} ...\c"
    nohup java $JAVA_OPTS -jar ${WAR_FILE} > $STDOUT_FILE 2>&1 &
    COUNT=0
    while [ $COUNT -lt 1 ]; do    
        echo -e ".\c"
        sleep 1 
        COUNT=`ps -f | grep java | grep "${DEPLOY_DIR}" | awk '{print $2}' | wc -l`
        if [ $COUNT -gt 0 ]; then
            break
        fi
    done
    
    PIDS=`ps -f | grep java | grep "${DEPLOY_DIR}" | awk '{print $2}'`
    echo "OK ! -->>> PID: $PIDS  -->>> STDOUT: $STDOUT_FILE "
    

    stop.sh

    • 定义变量: 部署服务路径/停止服务名称
    • 检查是否启动: 使用 ps /grep/awk命令 配合 | 一起使用 启动继续下面的
    • kill掉进程
    • 再次检查进程是否存在
    • shell脚本示例:
    #!/bin/bash
    
    #服务部署路径
    DEPLOY_DIR=/opt/app/test
    #停止服务名称
    SERVER_NAME=test
    
    PIDS=`ps -ef | grep java | grep "${DEPLOY_DIR}" |awk '{print $2}'`
    if [ -z "$PIDS" ]; then
        echo ">>> ERROR: The $SERVER_NAME does not started!"
        exit 1
    fi
    
    echo -e ">>> Stopping the $SERVER_NAME ...\c"
    for PID in $PIDS ; do
        kill $PID > /dev/null 2>&1
    done
    
    COUNT=0
    while [ $COUNT -lt 1 ]; do    
        echo -e ".\c"
        sleep 1
        COUNT=1
        for PID in $PIDS ; do
            PID_EXIST=`ps -f -p $PID | grep java`
            if [ -n "$PID_EXIST" ]; then
                COUNT=0
                break
            fi
        done
    done
    
    echo "OK! -->>> PID: $PIDS"
    

    相关文章

      网友评论

        本文标题:常用的启动和停止shell脚本

        本文链接:https://www.haomeiwen.com/subject/usamghtx.html