Blame scripts/memcached-init

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