• 设备
    • 今日
    • 0

    无感发布重启服务

    场景说明:

    多台服务已部署负载均衡运行

    所有进程按先后顺序关闭并重启,确保后台服务不中断

    实现无感发布功能,用户端不会因服务重启导致访问异常

    脚本文件内容如下:


    #!/bin/sh

    http="http://192.168.1.112"

    server_prot1="40011"

    server_prot2="40012"

    APP_HOME="$HOME/app"

    APP_HOME_BIN="$HOME/app/http/bin"

    stopname="stop_http_app_0"

    startname="start_http_app_0"


    # 注:i<=2 代表进程数为:2


    for ((i=1; i<=2; i ++))

    do


    #stop services:

    echo "Stopping Server $i……"


    eval stop_name${i}=$stopname$i".sh"

    eval start_name${i}=$startname$i".sh"

    eval port=\$server_prot${i}

    eval stopn=\$stop_name${i}

    eval startn=\$start_name${i}

    http_addr="$http:$port/actuator/health"


    for file in `find $APP_HOME -name $stopn`

    do


    cd `dirname $file`

    fname=`basename $file`

    j=0

    msg=`./$fname`

    while [[ `lsof -i:$port | wc -l` -gt 0 ]]

    do

    echo "服务【$stopn 】正在运行,尝试停止中......耗时$j;"

    j=`expr $j + 1`;

    sleep 1

    done


    echo "${stopn}...............[${msg}]"

    done


    #start services:

    echo "Starting Server $i......"

    for file in `find $APP_HOME -name $startn`

    do

    cd `dirname $file`

    fname=`basename $file`

    j=0

    msg=`./$fname > /dev/null 2>&1 &`

    while [[ `curl -I -s -m 6 -o /dev/null -w %{http_code} $http_addr` -ne 200 ]]

    #while [[ `lsof -i:$port | wc -l` -eq 0 ]]

    do

    echo "服务【$startn 】正在启动中,请稍等......耗时$j;"

    j=`expr $j + 1`;

    sleep 1

    done


    echo "${startn}....................[The process started successfully]"

    done

    done



    来自:PC 广东省广州市
    上一篇: 查询windows文件删除日志
    您可能还喜欢这些:

    亲,沙发正空着,还不快来抢?

    评论审核已开启:即评论经审核才能正常显示! 记住我的个人信息 回复后邮件通知我