#! /bin/sh
### BEGIN INIT INFO
# Provides: uanytun
-# Required-Start: $network $named $syslog
-# Required-Stop:
+# Required-Start: $remote_fs $network $named $syslog
+# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start anycast tunneling daemon at boot time
CONFIG_DIR=/etc/uanytun
NAME=uanytun
DESC=uanytun
+VARRUN_DIR=/var/run/$NAME
test -x $DAEMON || exit 0
. /etc/default/uanytun
fi
+. /lib/lsb/init-functions
+
start_vpn () {
STATUS="OK"
- if [ -f $CONFIG_DIR/$NAME/config ] ; then
+ if [ -f $CONFIG_DIR/$VPNNAME/config ] ; then
POSTUP=''
- test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh"
- CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'`
+ test -f $CONFIG_DIR/$VPNNAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$VPNNAME/post-up.sh"
+ CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$VPNNAME/config | sed 's/chroot\s*//'`
if [ -n "$CHROOTDIR" ] ; then
test -d $CHROOTDIR || mkdir -p $CHROOTDIR
fi
- DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '`
- $DAEMON --write-pid /var/run/uanytun.$NAME.pid $POSTUP $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
+ test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR
+ DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$VPNNAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '`
+ $DAEMON --write-pid $VARRUN_DIR/$VPNNAME.pid $POSTUP $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
else
STATUS="no config found"
fi
echo -n "Starting $DESC:"
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"
+ for VPNNAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do
+ echo -n " $VPNNAME"
start_vpn
done
else
else
while shift ; do
[ -z "$1" ] && break
- NAME=$1
- echo -n " $NAME"
+ VPNNAME=$1
+ echo -n " $VPNNAME"
start_vpn
done
fi
stop)
echo -n "Stoping $DESC:"
if test -z "$2" ; then
- for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- echo -n " $NAME"
+ for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
+ VPNNAME=`basename $PIDFILE .pid`
+ echo -n " $VPNNAME"
stop_vpn
done
else
while shift ; do
[ -z "$1" ] && break
- if test -e /var/run/uanytun.$1.pid ; then
- PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null`
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- echo -n " $NAME"
+ if test -e $VARRUN_DIR/$1.pid ; then
+ PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
+ VPNNAME=`basename $PIDFILE .pid`
+ echo -n " $VPNNAME"
stop_vpn
else
echo -n " (failure: No such tunnel is running: $1)"
reload)
echo -n "Reloading $DESC:"
if test -z "$2" ; then
- for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- echo -n " $NAME"
+ for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
+ VPNNAME=`basename $PIDFILE .pid`
+ echo -n " $VPNNAME"
stop_vpn
start_vpn
done
else
while shift ; do
[ -z "$1" ] && break
- if test -e /var/run/uanytun.$1.pid ; then
- PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null`
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- echo -n " $NAME"
+ if test -e $VARRUN_DIR/$1.pid ; then
+ PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
+ VPNNAME=`basename $PIDFILE .pid`
+ echo -n " $VPNNAME"
stop_vpn
start_vpn
else
fi
echo "."
;;
- restart)
+ restart|force-reload)
SCRIPT=$0
shift
$SCRIPT stop $*