多个 Memcached 服务器 /etc/init.d 启动脚本有效吗?

p4g*_*uru 6 centos memcached memcache

我通过源安装了 memcached 服务器,并且可以获得为 1 个 memcached 服务器实例安装的标准启动脚本,但是通过谷歌尝试了几个脚本,找不到一个可以在启动时管理多个 memcached 服务器实例的自动启动的脚本。我已经尝试了这两个脚本,但都不起作用,service memcached start 只是返回到命令提示符,没有启动 memcached 服务器实例

  • lullabot.com/articles/installing-memcached-redhat-or-centos
  • addmoremem.blogspot.com/2010/09/running-multiple-instances-of-memcached.html

然而,这个 bash 脚本可以工作,但在启动时没有启动 memcached 实例?

#!/bin/sh
case "$1" in
start)
/usr/local/bin/memcached -d -m 16 -p 11211 -u nobody
/usr/local/bin/memcached -d -m 16 -p 11212 -u nobody
;;
stop) killall memcached
;;
esac
Run Code Online (Sandbox Code Playgroud)

操作系统:Centos 5.5 64bit Memcached = v1.4.5 Memcache = v2.2.5

任何人都可以指向我一个有效的 /etc/init.d/ 启动脚本来管理多个 memcached 服务器?谢谢

编辑:谢谢垫子,这是最终工作的代码

#!/bin/sh
# chkconfig: - 80 12
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
BIN=/usr/local/bin/memcached
USER=nobody
CON=2048
THREADS=4

$BIN -d -m 16 -p 11211 -c $CON -t $THREADS -u $USER
$BIN -d -m 16 -p 11212 -c $CON -t $THREADS -u $USER

case "$1" in
start)
$BIN -d -m 16 -p 11211 -c $CON -t $THREADS -u $USER
$BIN -d -m 16 -p 11212 -c $CON -t $THREADS -u $USER
;;
stop) killall $BIN
;;
esac
Run Code Online (Sandbox Code Playgroud)

小智 5

要将服务添加到 chkconfig,您通常需要在 shell 脚本的 shebang 下方添加一些特殊注释:

#!/bin/sh
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
Run Code Online (Sandbox Code Playgroud)

将这些行添加到 /etc/init.d/memcached 后,您可以发出

chkconfig --add memcached
Run Code Online (Sandbox Code Playgroud)

当然,进程可以启动其他运行级别,以便检查您是否会发出

chkconfig --list | grep "memcached"
Run Code Online (Sandbox Code Playgroud)

memcached 的常见运行级别是

chkconfig --level 345 memcached on
Run Code Online (Sandbox Code Playgroud)