SOURCES: memcached.init - run as memcached user - allow multiple daemons

glen glen at pld-linux.org
Mon Nov 24 19:06:10 CET 2008


Author: glen                         Date: Mon Nov 24 18:06:10 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- run as memcached user
- allow multiple daemons

---- Files affected:
SOURCES:
   memcached.init (1.5 -> 1.6) 

---- Diffs:

================================================================
Index: SOURCES/memcached.init
diff -u SOURCES/memcached.init:1.5 SOURCES/memcached.init:1.6
--- SOURCES/memcached.init:1.5	Thu Oct 19 12:33:58 2006
+++ SOURCES/memcached.init	Mon Nov 24 19:06:05 2008
@@ -17,20 +17,33 @@
 . /etc/sysconfig/network
 
 MEMUSAGE="64"
-MEMCACHED_RUNAS="nobody"
+MEMCACHED_RUNAS="memcached"
 MAXCONN="1024"
-LISTENON="127.0.0.1"
-PORT="11211"
+LISTEN="127.0.0.1:11211"
 
 # Get service config
 [ -f /etc/sysconfig/memcached ] && . /etc/sysconfig/memcached
 
+if [ "$LISTENON" -a "$PORT" ]; then
+	# backward compat config
+	LISTEN="$LISTENON:$PORT"
+fi
+
 start() {
 	# Check if the service is already running?
 	if [ ! -f /var/lock/subsys/memcached ]; then
-		msg_starting memcached
-		daemon /usr/sbin/memcached -d -p $PORT -l $LISTENON -m $MEMUSAGE -c $MAXCONN -u $MEMCACHED_RUNAS $MEMCACHED_OPTS
-		RETVAL=$?
+		local listen ip port ret=0
+		for listen in $LISTEN; do
+			ip=${listen%:*}
+			port=${listen##*:}
+			msg_starting "memcached ($ip:$port)"
+			pidfile=/var/run/memcached/"$ip.$port.pid"
+			daemon --pidfile $pidfile --user $MEMCACHED_RUNAS \
+				/usr/sbin/memcached -d -P $pidfile -l $ip -p $port \
+				-m $MEMUSAGE -c $MAXCONN -u $MEMCACHED_RUNAS $MEMCACHED_OPTS
+			ret=$?
+			[ $ret = 0 ] || RETVAL=$?
+		done
 		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
 	else
 		msg_already_running memcached
@@ -39,9 +52,15 @@
 
 stop() {
 	if [ -f /var/lock/subsys/memcached ]; then
-		msg_stopping memcached
-		killproc memcached
-		rm -f /var/run/memcached.pid /var/lock/subsys/memcached >/dev/null 2>&1
+		local listen ip port
+		for listen in $LISTEN; do
+			ip=${listen%:*}
+			port=${listen##*:}
+			msg_stopping "memcached ($ip:$port)"
+			pidfile=/var/run/memcached/"$ip.$port.pid"
+			killproc --pidfile $pidfile memcached
+		done
+		rm -f /var/lock/subsys/memcached >/dev/null 2>&1
 	else
 		msg_not_running memcached
 	fi
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/memcached.init?r1=1.5&r2=1.6&f=u



More information about the pld-cvs-commit mailing list