Adding a copy of memcached to the tree.
[awesomized/libmemcached] / memcached / scripts / memcached-init
diff --git a/memcached/scripts/memcached-init b/memcached/scripts/memcached-init
new file mode 100755 (executable)
index 0000000..ebe2ab0
--- /dev/null
@@ -0,0 +1,111 @@
+#! /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