Linux如何将Memcached注册为系统服务

今天 412阅读

在Linux系统下编译安装后没有自动注册为系统服务。另外由于memcached基于libevent库,该库默认的编译安装位置为/usr/local/lib目录,该目录又不是多数linux发行版的默认库加载路径。因此在执行memcached之前需要修改默认加载路径,将该路径包含进去。虽然只需要设置一次但毕竟要设置,很麻烦。如果你又希望存放在该路径下的库不被程序自动搜寻到,就不能使用该方法。那么怎么才能有个完全的方法来解决呢?

① 编写脚本

编写脚本文件如下(memcached):

#!/bin/sh## memcached: Start/Stop/Restart memcached# chkconfig: 35 33 84# description: memcached serverMEMCACHED=/usr/local/bin/memcached# memcached 分配的内存大小,单位MMEMSIZE=128USER=nobody# memcached使用的端口PORT01=11211# 每个memcache 提供的最大连接数MAXCONN=1024# 每个memcache 的进程IDPID01=/var/run/memcached/memcached$PORT01.pidRETVAL=0prog="memcached"start() { echo -n $"Starting $prog: " $MEMCACHED -d -m $MEMSIZE -u $USER -p $PORT01 -c $MAXCONN -P $PID01 if [ $? -eq 0 ];thenecho "memcacheds$PORT01 servers is start ok..." elseecho "memcacheds$PORT01 server not runing......" fi}stop() { for i in $PID01dokill `cat $i` rm -f $i echo$"Stopping $prog: "done }# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopstart;;*)echo $"Usage: $0 {start|stop|restart}";;esacexit $RETVAL

② 将其放入/etc/init.d/目录下

③ 为文件赋予被执行的权限

chmod /etc/init.d/memcached

④ 将memcached加入chkconfig管理列表

执行命令:

chkconfig --add memcachedchkconfig memcached onchkconfig --list //查看服务列表

⑤ 启动memcached服务

service memcached start