|
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
|