4 # Required-Start: $network $named $syslog
6 # Default-Start: 2 3 4 5
8 # Short-Description: Start anycast tunneling daemon at boot time
9 # Description: Enables networking over vpn tunnel interfaces
11 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
12 DAEMON=/usr/sbin/anytun
13 ANYTUNCONFIG=/usr/bin/anytun-config
14 CONTROLDAEMON=/usr/bin/anytun-controld
17 CONFIG_DIR=/etc/anytun
18 VARCONFIG_DIR=/var/run/anytun-controld
19 VARRUN_DIR=/var/run/anytun
21 test -x $DAEMON || exit 0
23 # Include anytun defaults if available
24 if [ -f /etc/default/anytun ] ; then
30 if [ -f $CONFIG_DIR/$NAME/config ] ; then
32 test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh"
33 CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'`
34 if [ -n "$CHROOTDIR" ] ; then
35 test -d $CHROOTDIR || mkdir -p $CHROOTDIR
37 test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR
38 DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '`
39 $DAEMON --write-pid /var/run/uanytun.$NAME.pid $POSTUP $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
41 STATUS="no config found"
47 kill `cat $PIDFILE` || true
53 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
54 test -d $VARCONFIG_DIR || mkdir -p $VARCONFIG_DIR
55 chmod 700 $VARCONFIG_DIR
56 rm -f $VARCONFIG_DIR/$NAME 2>/dev/null
57 for CLIENTNAME in `ls $CONFIG_DIR/$NAME/conf.d`; do
58 echo -n " ($CLIENTNAME)"
59 DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/conf.d/$CLIENTNAME | grep -e '\w' | sed 's/^/ --/' | xargs echo`
60 $ANYTUNCONFIG $DAEMONARG >> $VARCONFIG_DIR/$NAME
62 CONTROLHOST=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed 's/^/ --/'`
63 $CONTROLDAEMON -f $VARCONFIG_DIR/$NAME $DAEMONOPTS $CONTROLHOST \
64 --write-pid $VARCONFIG_DIR/$NAME.pid
65 # rm -f $VARCONFIG_DIR/$NAME
69 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
71 kill `cat $VARCONFIG_DIR/$NAME.pid` || true
72 rm $VARCONFIG_DIR/$NAME.pid
79 echo -n "Starting $DESC:"
80 if test -z "$2" ; then
81 if [ -f $CONFIG_DIR/autostart ] ; then
82 for NAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do
87 echo "no config found"
101 echo -n "Stoping $DESC:"
102 if test -z "$2" ; then
103 for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
104 NAME=`echo $PIDFILE | cut -c17-`
112 if test -e $VARRUN_DIR/$1.pid ; then
113 PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
114 NAME=`echo $PIDFILE | cut -c17-`
119 echo -n " (failure: No such tunnel is running: $1)"
126 echo -n "Reloading $DESC:"
127 if test -z "$2" ; then
128 for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
129 NAME=`echo $PIDFILE | cut -c17-`
132 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
143 if test -e $VARRUN_DIR/$1.pid ; then
144 PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
145 NAME=`echo $PIDFILE | cut -c17-`
148 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
156 echo -n " (failure: No such tunnel is running: $1)"
163 echo -n "Restarting $DESC:"
164 if test -z "$2" ; then
165 for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
166 NAME=`echo $PIDFILE | cut -c17-`
176 if test -e $VARRUN_DIR/$1.pid ; then
177 PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
178 NAME=`echo $PIDFILE | cut -c17-`
185 echo -n " (failure: No such tunnel is running: $1)"
200 echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2