#! /bin/sh # # skeleton example file to build /etc/init.d/ scripts. # This file should be used to construct scripts for /etc/init.d. # # Written by Miquel van Smoorenburg . # Modified for Debian # by Ian Murdock . # # Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/anytun CHROOTDIR='/var/run/anytun' DAEMONOPTS="--chroot --username nobody --chroot-dir $CHROOTDIR" NAME=anytun DESC=anytun CONFIG_DIR=/etc/anytun test -x $DAEMON || exit 0 # Include anytun defaults if available if [ -f /etc/default/anytun ] ; then . /etc/default/anytun fi start_vpn () { STATUS=OK if [ -f $CONFIG_DIR/$NAME/config ] ; then DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/ --/' | xargs echo` $DAEMON --write-pid /var/run/anytun.$NAME.pid \ $DAEMONOPTS $DAEMONARG > /dev/null || STATUS="FAILED" else STATUS="no config found" fi echo -n "($STATUS)" } stop_vpn () { kill `cat $PIDFILE` || true rm $PIDFILE } set -e case "$1" in start) echo -n "Starting $DESC: " test -d $CHROOTDIR || mkdir $CHROOTDIR if test -z "$2" ; then if [ -f $CONFIG_DIR/autostart ] ; then for NAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do echo -n "$NAME" start_vpn done else echo "no config found" exit 1; fi else while shift ; do NAME=$1 start_vpn done fi echo "." ;; stop) echo -n "Stoping $DESC: " if test -z "$2" ; then for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do NAME=`echo $PIDFILE | cut -c17-` NAME=${NAME%%.pid} stop_vpn echo -n " $NAME" done else while shift ; do [ -z "$1" ] && break if test -e /var/run/anytun.$1.pid ; then PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null` NAME=`echo $PIDFILE | cut -c17-` NAME=${NAME%%.pid} stop_vpn echo -n " $NAME" else echo -n " (failure: No such tunnel is running: $1)" fi done fi echo . ;; #reload) # # If the daemon can reload its config files on the fly # for example by sending it SIGHUP, do it here. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # # echo "Reloading $DESC configuration files." # start-stop-daemon --stop --signal 1 --quiet --pidfile \ # /var/run/$NAME.pid --exec $DAEMON #;; force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart" except that it does nothing if the # daemon isn't already running. # check wether $DAEMON is running. If so, restart start-stop-daemon --stop --test --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON \ && $0 restart \ || exit 0 ;; restart) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0