--- /dev/null
+#! /bin/bash
+### BEGIN INIT INFO
+# Provides: memcached
+# Required-Start: $syslog
+# Required-Stop: $syslog
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: memcached - Memory caching daemon
+# Description: memcached - Memory caching daemon
+### END INIT INFO
+
+# Usage:
+# cp /etc/memcached.conf /etc/memcached_server1.conf
+# cp /etc/memcached.conf /etc/memcached_server2.conf
+# start all instances:
+# /etc/init.d/memcached start
+# start one instance:
+# /etc/init.d/memcached start server1
+# stop all instances:
+# /etc/init.d/memcached stop
+# stop one instance:
+# /etc/init.d/memcached stop server1
+# There is no "status" command.
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/memcached
+DAEMONNAME=memcached
+DAEMONBOOTSTRAP=/usr/share/memcached/scripts/start-memcached
+DESC=memcached
+
+test -x $DAEMON || exit 0
+test -x $DAEMONBOOTSTRAP || exit 0
+
+set -e
+
+FILES=(/etc/memcached_*.conf)
+# check for alternative config schema
+if [ -r "${FILES[0]}" ]; then
+ CONFIGS=()
+ for FILE in "${FILES[@]}";
+ do
+ # remove prefix
+ NAME=${FILE#/etc/}
+ # remove suffix
+ NAME=${NAME%.conf}
+
+ # check optional second param
+ if [ $# -ne 2 ];
+ then
+ # add to config array
+ CONFIGS+=($NAME)
+ elif [ "memcached_$2" == "$NAME" ];
+ then
+ # use only one memcached
+ CONFIGS=($NAME)
+ break;
+ fi;
+ done;
+
+ if [ ${#CONFIGS[@]} == 0 ];
+ then
+ echo "Config not exist for: $2" >&2
+ exit 1
+ fi;
+else
+ CONFIGS=(memcached)
+fi;
+
+CONFIG_NUM=${#CONFIGS[@]}
+for ((i=0; i < $CONFIG_NUM; i++)); do
+ NAME=${CONFIGS[${i}]}
+ PIDFILE="/var/run/${NAME}.pid"
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --exec "$DAEMONBOOTSTRAP" -- /etc/${NAME}.conf $PIDFILE
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
+ echo "$NAME."
+ rm -f $PIDFILE
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ rm -f $PIDFILE
+ sleep 1
+ start-stop-daemon --start --quiet --exec "$DAEMONBOOTSTRAP" -- /etc/${NAME}.conf $PIDFILE
+ echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+done;
+
+exit 0