首页  >  文章  >  后端开发  >  如何通过sh memcached 进程启动及监控

如何通过sh memcached 进程启动及监控

jacklove
jacklove原创
2018-06-11 10:41:111999浏览

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

本文讲解了如何通过sh memcached 进程启动及监控 ,更多相关内容请关乎php中文网。

相关推荐:

介绍自动登入google play下载app report 的相关内容

关于Apache rewrite 的相关介绍

关于php click captcha 验证码类的介绍

以上是如何通过sh memcached 进程启动及监控的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn