1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#! /bin/sh
### BEGIN INIT INFO
# Provides: memcachedb
# Required-Start: $local_fs $remote_fs $syslog
# Required-Stop: $local_fs $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: memcachedb - Persistent cache daemon
# Description: memcachedb - Persistent cache daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/memcachedb
NAME=memcachedb
DESC=memcachedb
DAEMONBOOTSTRAP=/usr/share/memcachedb/start-memcachedb
test -x $DAEMON || exit 0
test -x $DAEMONBOOTSTRAP || exit 0
. /lib/lsb/init-functions
STARTUP=/etc/memcachedb.d
# instances can be specified explicitly
if [ -n "$2" ]; then
INSTANCES="$2 $3 $4 $5 $6 $7 $8 $9"
else
INSTANCES=`run-parts --list --regex='^.*\.conf$' $STARTUP | xargs -n1 basename -s .conf`
fi
pidfile() {
echo "/run/memcachedb/$1.pid"
}
prepare_start() {
mkdir -p /run/memcachedb
}
d_start() {
start-stop-daemon --start --quiet --pidfile $(pidfile $1) --exec $DAEMONBOOTSTRAP $STARTUP/$1.conf $(pidfile $1) --test > /dev/null || return 1
start-stop-daemon --start --pidfile $(pidfile $1) --exec $DAEMONBOOTSTRAP $STARTUP/$1.conf $(pidfile $1)
}
d_stop() {
start-stop-daemon --stop --quiet --pidfile $(pidfile $1)
rm $(pidfile $1)
}
is_running() {
pidofproc -p $(pidfile $1) $DAEMON >/dev/null
}
case $1 in
start)
log_daemon_msg "Starting $DESC"
prepare_start
for x in $INSTANCES; do
d_start $x
log_progress_msg $x
done
log_end_msg 0
;;
stop)
status=0
log_daemon_msg "Stopping $DESC"
for x in $INSTANCES; do
d_stop $x
log_progress_msg $x
done
log_end_msg 0
;;
restart|force-reload)
status=0
log_daemon_msg "Restarting $DESC"
for x in $INSTANCES; do
log_progress_msg $x
d_stop $x && sleep 1
d_start $x
done
log_end_msg 0
;;
*)
log_failure_msg "Usage: $0 {start|stop|restart|force-reload} [version ..]"
exit 2
;;
esac
exit 0
|