#! /bin/sh ### BEGIN INIT INFO # Provides: dropnroll # Required-Start: $syslog # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start dropnroll daemon at boot time # Description: Waits for files in folders and calls script for new files ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/dropnroll CONFIG_DIR=/etc/dropnroll NAME=dropnroll DESC=dropnroll VARRUN_DIR=/var/run/$NAME test -x $DAEMON || exit 0 # Include dropnroll defaults if available if [ -f /etc/default/dropnroll ] ; then . /etc/default/dropnroll fi . /lib/lsb/init-functions start_dnr () { STATUS="OK" if [ -f $CONFIG_DIR/$DNRNAME/config ] ; then NEWFILE='' test -f $CONFIG_DIR/$DNRNAME/newfile.sh && NEWFILE="-x $CONFIG_DIR/$DNRNAME/newfile.sh" CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$DNRNAME/config | sed 's/chroot\s*//'` if [ -n "$CHROOTDIR" ] ; then test -d $CHROOTDIR || mkdir -p $CHROOTDIR fi test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR chmod 777 $VARRUN_DIR DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$DNRNAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '` $DAEMON --write-pid $VARRUN_DIR/$DNRNAME.pid $NEWFILE $DAEMONOPTS $DAEMONARG || STATUS="FAILED" else STATUS="no config found" fi echo -n "($STATUS)" } stop_dnr () { kill `cat $PIDFILE` || true rm $PIDFILE } set -e case "$1" in start) echo -n "Starting $DESC:" if test -z "$2" ; then if [ -f $CONFIG_DIR/autostart ] ; then for DNRNAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do echo -n " $DNRNAME" start_dnr done else echo " no config found" exit 0; fi else while shift ; do [ -z "$1" ] && break DNRNAME=$1 echo -n " $DNRNAME" start_dnr done fi echo "." ;; stop) echo -n "Stoping $DESC:" if test -z "$2" ; then for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do DNRNAME=`echo $PIDFILE | cut -c20-` DNRNAME=${DNRNAME%%.pid} echo -n " $DNRNAME" stop_dnr done else while shift ; do [ -z "$1" ] && break if test -e $VARRUN_DIR/$1.pid ; then PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null` DNRNAME=`echo $PIDFILE | cut -c20-` DNRNAME=${DNRNAME%%.pid} echo -n " $DNRNAME" stop_dnr else echo -n " (failure: No such tunnel is running: $1)" fi done fi echo "." ;; reload) echo -n "Reloading $DESC:" if test -z "$2" ; then for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do DNRNAME=`echo $PIDFILE | cut -c20-` DNRNAME=${DNRNAME%%.pid} echo -n " $DNRNAME" stop_dnr start_dnr done else while shift ; do [ -z "$1" ] && break if test -e $VARRUN_DIR/$1.pid ; then PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null` DNRNAME=`echo $PIDFILE | cut -c20-` DNRNAME=${DNRNAME%%.pid} echo -n " $DNRNAME" stop_dnr start_dnr else echo -n " (failure: No such tunnel is running: $1)" fi done fi echo "." ;; restart) SCRIPT=$0 shift $SCRIPT stop $* sleep 1 $SCRIPT start $* ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|reload}" >&2 exit 1 ;; esac exit 0