zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【JSOI 2008】 最大数
    【Usaco2008 Dec】Patting Heads
    【AHOI 2005】 约数研究
    【HAOI2007】反素数
    BZOJ3676 APIO2014回文串(manacher+后缀自动机)
    Luogu3804 【模板】后缀自动机(后缀自动机)
    后缀自动机学习笔记
    Codeforces ECR47F Dominant Indices(线段树合并)
    BZOJ1127 POI2008KUP(悬线法)
    BZOJ4652 NOI2016循环之美(莫比乌斯反演+杜教筛)
  • 原文地址:https://www.cnblogs.com/fdipzone/p/3715126.html
Copyright © 2011-2022 走看看