自定义脚本将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