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
20 test -x $DAEMON || exit 0
22 # Include anytun defaults if available
23 if [ -f /etc/default/anytun ] ; then
29 if [ -f $CONFIG_DIR/$NAME/config ] ; then
31 test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh"
32 CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'`
33 if [ -n "$CHROOTDIR" ] ; then
34 test -d $CHROOTDIR || mkdir -p $CHROOTDIR
36 DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '`
37 $DAEMON --write-pid /var/run/anytun.$NAME.pid $POSTUP \
38 $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
40 STATUS="no config found"
46 kill `cat $PIDFILE` || true
52 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
53 test -d $VARCONFIG_DIR || mkdir -p $VARCONFIG_DIR
54 chmod 700 $VARCONFIG_DIR
55 rm -f $VARCONFIG_DIR/$NAME 2>/dev/null
56 for CLIENTNAME in `ls $CONFIG_DIR/$NAME/conf.d`; do
57 echo -n " ($CLIENTNAME)"
58 DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/conf.d/$CLIENTNAME | grep -e '\w' | sed 's/^/ --/' | xargs echo`
59 $ANYTUNCONFIG $DAEMONARG >> $VARCONFIG_DIR/$NAME
61 CONTROLHOST=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed 's/^/ --/'`
62 $CONTROLDAEMON -f $VARCONFIG_DIR/$NAME $DAEMONOPTS $CONTROLHOST \
63 --write-pid $VARCONFIG_DIR/$NAME.pid
64 # rm -f $VARCONFIG_DIR/$NAME
68 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
70 kill `cat $VARCONFIG_DIR/$NAME.pid` || true
71 rm $VARCONFIG_DIR/$NAME.pid
78 echo -n "Starting $DESC:"
79 if test -z "$2" ; then
80 if [ -f $CONFIG_DIR/autostart ] ; then
81 for NAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do
86 echo "no config found"
100 echo -n "Stoping $DESC:"
101 if test -z "$2" ; then
102 for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
103 NAME=`echo $PIDFILE | cut -c17-`
111 if test -e /var/run/anytun.$1.pid ; then
112 PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
113 NAME=`echo $PIDFILE | cut -c17-`
118 echo -n " (failure: No such tunnel is running: $1)"
125 echo -n "Reloading $DESC:"
126 if test -z "$2" ; then
127 for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
128 NAME=`echo $PIDFILE | cut -c17-`
131 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
142 if test -e /var/run/anytun.$1.pid ; then
143 PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
144 NAME=`echo $PIDFILE | cut -c17-`
147 if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
155 echo -n " (failure: No such tunnel is running: $1)"
162 echo -n "Restarting $DESC:"
163 if test -z "$2" ; then
164 for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
165 NAME=`echo $PIDFILE | cut -c17-`
175 if test -e /var/run/anytun.$1.pid ; then
176 PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
177 NAME=`echo $PIDFILE | cut -c17-`
184 echo -n " (failure: No such tunnel is running: $1)"
199 echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2