memcached服务启动及开机启动

memcached启动脚本

    在之前的博客redhat linux安装memcached 中,已经介绍了怎么安装memcached。本文将主要介绍如何将memcached作为系统服务启动以及开机启动。

    根据上一篇博文认识linux系统服务(daemons) 介绍,要将memcached作为系统服务启动,需要在/etc/init.d/目录下新建一个脚本,名称为:memcached。内容如下:

#! /bin/bash
#
# memcached     start/stop the memcached daemon
#
# chkconfig: 35 80 70
# description: memcached is a memory cache server.
#

prog="memcached"
exec=/usr/local/memcached/bin/memcached
lockfile=/var/lock/subsys/memcached

# source function library.
. /etc/rc.d/init.d/functions

start() {
    if [ $UID -ne 0 ]; then
        echo "User has insufficient privilege."
        exit 4
    fi
    [ -x $exec ] || exit 5
    echo -n $"starting $prog: "
    daemon $exec -u root -d -P /var/run/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 $exec`" ]; then
                killproc $exec

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

restart() {
    stop
    start
}

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

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    "start")
        rh_status_q && exit 0
        $1
        ;;
    "stop")
        rh_status_q || exit 0
        $1
        ;;
    "restart")
        rh_status_q || exit 7
        $1
        ;;
    "status")
        rh_status
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 2
        ;;
esac
exit $?

    此脚本使用了functions文件里的函数,因此需要将其加载进来。

    因为要判断memcached服务的运行状态,所以在调用memcached程序时,传递了pid文件参数。因为在此脚本中判断运行状态以及停止memcached服务时,是使用pid文件来进行的。

    由上面的脚本可以看出,提供了四个动作:start、stop、status、restart。

memcached服务的启动

    通过执行以下命令可以使memcached服务启动:

[root@rhl6 init.d]# service memcached start
starting memcached:                                        [  OK  ]

    或

[root@rhl6 init.d]# ./memcached start
starting memcached:                                        [  OK  ]

memcached服务开机启动

    查看memcached服务是否在chkconfig管理列表:

[root@rhl6 init.d]# chkconfig --list memcached
service memcached supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add memcached')

    由提示信息可以看出,memcached还没有加入chkconfig管理,将其加入chkconfig管理:

<p><pre class="plain" name="code">[root@rhl6 init.d]# chkconfig --add memcached


    再次查看memcached服务被管理:

[root@rhl6 init.d]# chkconfig --list memcached
memcached       0:off   1:off   2:off   3:on    4:off   5:on    6:off

    可以看到,在运行级别3、5上,memcached服务已经设置为开机启动了。这个设置是在shell脚本中设置的(上面脚本第五行):

# chkconfig: 35 80 70





   



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。