• sh memcached 进程启动及监控


    memcached 进程启动及监控

    1.memcached_inc.sh
    设置路径,端口等讯息。

    #!/bin/sh
    
    #config include
    
    HOST=$(hostname)
    SITE="mysite"
    PORT=11211
    
    MEMCACHED_PID_FILE="/tmp/memcached.pid"
    MEMCACHED_DAEMON_PID_FILE="/tmp/memcached_daemon.pid"
    
    MEMCACHED="memcached -d -m 64 -p $PORT -u memcache -l 127.0.0.1 -P $MEMCACHED_PID_FILE"
    MEMCACHED_DAEMON_FILE="memcached_daemon.sh"
    
    ERROR_LOG_FILE="${ROOT}/memcached_${SITE}_${HOST}_${PORT}.log"

    2.gm_memcached.sh
    控制memcached 启动,停止,重启。

    #!/bin/sh
    
    #memcached start and stop
    #$1 action
    
    ROOT=$(cd "$(dirname "$0")"; pwd)
    
    . ${ROOT}/memcached_inc.sh
    
    
    start() {
    
        if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then
            printf "memcached already running\n"
        else
            printf "starting memcached\n"
            $MEMCACHED
    
            sleep 2
    
            PID=$(cat $MEMCACHED_PID_FILE)
            printf "memcached is started PID:$PID\n"
    
            printf "starting memcached daemon\n"
            ${ROOT}/${MEMCACHED_DAEMON_FILE} &
            DAEMON_PID=$!
            echo ${DAEMON_PID} > ${MEMCACHED_DAEMON_PID_FILE}
            printf "memcached daemon is started PID:${DAEMON_PID}\n"
        fi
    
    }
    
    
    stop() {
    
        if [ -f "$MEMCACHED_DAEMON_PID_FILE" ] && [ -s "$MEMCACHED_DAEMON_PID_FILE" ]; then
            DAEMON_PID=$(cat $MEMCACHED_DAEMON_PID_FILE)
            rm -f ${MEMCACHED_DAEMON_PID_FILE}
            if [ ! -z ${DAEMON_PID} ]; then
                kill -9 ${DAEMON_PID}
            fi
            printf "memcached daemon is stopped\n"
        else
            printf "no memcached daemon running\n"
        fi
    
        sleep 1
    
        if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then
            PID=$(cat $MEMCACHED_PID_FILE)
            rm -f ${MEMCACHED_PID_FILE}
            if [ ! -z ${PID} ]; then
                kill -9 ${PID}
            fi
            printf "memcached is stopped\n"
        else
            printf "no memcached running\n"
        fi
    
    }
    
    
    case "$1" in
    
        start)
            start
            ;;
    
        stop)
            stop
            ;;
    
        restart)
            stop
            sleep 3
            start
            ;;
    
        *)
            printf "Usage:$0 {start|stop|restart}\n"
            exit 1  
    
    esac
    
    exit 0

    3.memcached_daemon.sh
    监控memcached 进程,如进程失效则自动启动。

    #!/bin/sh
    
    #memcached daemon
    
    ROOT=$(cd "$(dirname "$0")"; pwd)
    
    . ${ROOT}/memcached_inc.sh
    
    
    while :
    do
        if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then
            PID=$(cat $MEMCACHED_PID_FILE)
        else
            PID=""
        fi
       
        if [ -z "$PID" ] || [ -z $(ps aux|awk '{print $2}' | grep "^$PID$") ]; then
            $MEMCACHED
            sleep 1
            printf "[$(date +%Y-%m-%d' '%H:%M:%S)] ${SITE} ${HOST} memcached ${PORT} is restarted\n" >> $ERROR_LOG_FILE
            echo "Subject: ${SITE} ${HOST} memcached ${PORT} is restarted $(date +%Y-%m-%d' '%H:%M:%S)" | sendmail me@gmail.com
        fi
    
        sleep 5
    
    done
    
    exit 0

    使用方法:
    ./gm_memcached.sh start   #启动memcached
    ./gm_memcached.sh stop    #停止memcached
    ./gm_memcached.sh restart #重启memcached

  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/fdipzone/p/3715126.html
Copyright © 2020-2023  润新知