#! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/mixminion NAME=mixminion DESC="mixminion daemon" PIDFILE=/var/run/$NAME/mixminion.pid WAITFORDAEMON=15 PYTHON=/usr/bin/python2.4 PYTHON_BASE=`basename $PYTHON` test -x $DAEMON || exit 0 # Include mixminion defaults if available if [ -f /etc/default/mixminion ] ; then . /etc/default/mixminion fi set -e wait_for_deaddaemon () { pid=$1 sleep 1 if test -n "$pid" then if kill -0 $pid 2>/dev/null then echo -n "." cnt=0 while kill -0 $pid 2>/dev/null do cnt=`expr $cnt + 1` if [ $cnt -gt $WAITFORDAEMON ] then echo " FAILED." return 1 fi sleep 1 echo -n "." done fi fi return 0 } case "$1" in start) if [ "$RUN_DAEMON" != "yes" ]; then echo "Not starting $DESC (Disabled in /etc/default/mixminion)." else echo -n "Starting $DESC: " start-stop-daemon --start --quiet --oknodo \ --chuid debian-mixminion:debian-mixminion \ --pidfile $PIDFILE \ --exec $PYTHON \ -- /usr/bin/mixminion server-start --daemon --quiet echo "$NAME." fi ;; stop) echo -n "Stopping $DESC: " pid=`cat $PIDFILE 2>/dev/null` || true if test ! -f $PIDFILE -o -z "$pid" then echo "not running (there is no $PIDFILE)." elif start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $PYTHON_BASE then wait_for_deaddaemon $pid echo "$NAME." elif kill -0 $pid 2>/dev/null then echo "FAILED (Is $pid not $NAME?)." else echo "FAILED ($DAEMON died: process $pid not running; or permission denied)." fi ;; reload|force-reload) echo -n "Reloading $DESC configuration: " pid=`cat $PIDFILE 2>/dev/null` || true if test ! -f $PIDFILE -o -z "$pid" then echo "not running (there is no $PIDFILE)." elif start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $PYTHON_BASE then echo "$NAME." elif kill -0 $pid 2>/dev/null then echo "FAILED (Is $pid not $NAME?)." else echo "FAILED ($DAEMON died: process $pid not running; or permission denied)." fi ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0