Memcache 服务管理脚本

下面自定义脚本将memcached作为系统服务启动以及开机启动。
一、编写脚本
在/etc/init.d/目录下新建一个脚本,名称为:memcached。内容如下:

vi /etc/init.d/memcached

#!/bin/bash

#description: Memcached Service Daemon
#processname: Memcached
#chkconfig: 2345 90 50

#Source function library.
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

memcached_exec="/usr/local/bin/memcached"
memcached_pid="/var/run/memcached.pid"
lockfile="/var/lock/subsys/memcached"
prog="memcached"

memcached_host="182.168.36.54"
memcached_port=11411
memcached_memory="1024"

start() {
  if [ $UID -ne 0 ]; then
    echo "User has insufficient privilege."
    exit 4
  fi
  [ -x $memcached_exec ] || exit 5
  echo -n $"starting $prog: "
  daemon $memcached_exec -u daemon -d -m $memcached_memory  -l $memcached_host -p $memcached_port -c 256 -P $memcached_pid
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
}

stop() {
  if [ $UID -ne 0 ]; then
    echo "User has insufficient privilege."
    exit 4
  fi
  echo -n $"Stopping $prog: "
    if [ -n "`pidfileofproc $memcached_exec`" ]; then
        killproc $memcached_exec

    else
        failure $"stopping $prog"
    fi
  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
}

status() {
  # run checks to determine if the service is running or use generic status
  status $prog
}

case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "restart")
    stop
    sleep 3
    start
    ;;
  "status")
    status
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac
exit $?
此脚本使用了functions文件里的函数,因此需要将其加载进来。因为要判断memcached服务的运行状态,所以在调用memcached程序时,传递了pid文件参数。因为在此脚本中判断运行状态以及停止memcached服务时,是使用pid文件来进行的。
由上面的脚本可以看出,提供了四个动作:start、stop、status、restart。
添加执行权限:
chmod +x  /etc/init.d/memcached
二、memcached服务的安装
查看memcached服务是否在chkconfig管理列表:
chkconfig --list memcached
将其加入chkconfig管理:
chkconfig --add memcached
chkconfig --level 235 memcached on
三、memcached服务启动
chkconfig --list | grep memcached
service memcached start
service memcached stop
service memcached restart

你可能感兴趣的:(memcached)