~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to vivid/etc/init.d/uanytun

  • Committer: Dimitri John Ledkov
  • Date: 2014-11-19 12:58:41 UTC
  • Revision ID: dimitri.j.ledkov@intel.com-20141119125841-98dr37roy8dvcv3b
auto update

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
### BEGIN INIT INFO
 
3
# Provides:          uanytun
 
4
# Required-Start:    $remote_fs $network $named $syslog
 
5
# Required-Stop:     $remote_fs
 
6
# Default-Start:     2 3 4 5
 
7
# Default-Stop:      0 1 6
 
8
# Short-Description: Start anycast tunneling daemon at boot time
 
9
# Description:       Enables networking over vpn tunnel interfaces
 
10
### END INIT INFO
 
11
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
12
DAEMON=/usr/sbin/uanytun
 
13
CONFIG_DIR=/etc/uanytun
 
14
NAME=uanytun
 
15
DESC=uanytun
 
16
VARRUN_DIR=/var/run/$NAME
 
17
 
 
18
test -x $DAEMON || exit 0
 
19
 
 
20
# Include uanytun defaults if available
 
21
if [ -f /etc/default/uanytun ] ; then
 
22
  . /etc/default/uanytun
 
23
fi
 
24
 
 
25
start_vpn () {
 
26
  STATUS="OK"
 
27
  if [ -f $CONFIG_DIR/$VPNNAME/config ] ; then
 
28
    POSTUP=''
 
29
    test -f  $CONFIG_DIR/$VPNNAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$VPNNAME/post-up.sh"
 
30
    CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$VPNNAME/config | sed 's/chroot\s*//'`
 
31
    if [ -n "$CHROOTDIR" ] ; then
 
32
      test -d $CHROOTDIR || mkdir -p $CHROOTDIR
 
33
    fi
 
34
    test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR
 
35
    DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$VPNNAME/config | grep -e '\w' | sed  's/^/--/' | tr '\n' ' '`
 
36
    $DAEMON --write-pid $VARRUN_DIR/$VPNNAME.pid $POSTUP $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
 
37
  else
 
38
    STATUS="no config found"
 
39
  fi
 
40
  echo -n "($STATUS)"
 
41
}
 
42
stop_vpn () {
 
43
  kill `cat $PIDFILE` || true
 
44
  rm $PIDFILE
 
45
}
 
46
 
 
47
set -e
 
48
case "$1" in
 
49
  start)
 
50
  echo -n "Starting $DESC:"
 
51
  if test -z "$2" ; then
 
52
    if [ -f $CONFIG_DIR/autostart ] ; then
 
53
      for VPNNAME in `sed 's/#.*//'  <  $CONFIG_DIR/autostart | grep -e '\w'`; do
 
54
        echo -n " $VPNNAME"
 
55
        start_vpn
 
56
      done
 
57
    else
 
58
      echo " no config found"
 
59
      exit 1;
 
60
    fi
 
61
  else
 
62
    while shift ; do
 
63
      [ -z "$1" ] && break
 
64
      VPNNAME=$1
 
65
      echo -n " $VPNNAME"
 
66
      start_vpn
 
67
    done
 
68
  fi
 
69
  echo "."
 
70
  ;;
 
71
  stop)
 
72
  echo -n "Stoping $DESC:"
 
73
  if test -z "$2" ; then
 
74
    for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
 
75
      VPNNAME=`basename $PIDFILE .pid`
 
76
      echo -n " $VPNNAME"
 
77
      stop_vpn
 
78
    done
 
79
  else
 
80
    while shift ; do
 
81
      [ -z "$1" ] && break
 
82
      if test -e $VARRUN_DIR/$1.pid ; then
 
83
        PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
 
84
        VPNNAME=`basename $PIDFILE .pid`
 
85
        echo -n " $VPNNAME"
 
86
        stop_vpn
 
87
      else
 
88
        echo -n " (failure: No such tunnel is running: $1)"
 
89
      fi
 
90
    done
 
91
  fi
 
92
  echo "."
 
93
  ;;
 
94
  reload)
 
95
  echo -n "Reloading $DESC:"
 
96
  if test -z "$2" ; then
 
97
    for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
 
98
      VPNNAME=`basename $PIDFILE .pid`
 
99
      echo -n " $VPNNAME"
 
100
      stop_vpn
 
101
      start_vpn
 
102
    done
 
103
  else
 
104
    while shift ; do
 
105
      [ -z "$1" ] && break
 
106
      if test -e $VARRUN_DIR/$1.pid ; then
 
107
        PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
 
108
        VPNNAME=`basename $PIDFILE .pid`
 
109
        echo -n " $VPNNAME"
 
110
        stop_vpn
 
111
        start_vpn
 
112
      else
 
113
        echo -n " (failure: No such tunnel is running: $1)"
 
114
      fi
 
115
    done
 
116
  fi
 
117
  echo "."
 
118
  ;;
 
119
  restart|force-reload)
 
120
    SCRIPT=$0
 
121
    shift
 
122
    $SCRIPT stop $*
 
123
    sleep 1
 
124
    $SCRIPT start $*
 
125
  ;;
 
126
  *)
 
127
  N=/etc/init.d/$NAME
 
128
  echo "Usage: $N {start|stop|restart|reload}" >&2
 
129
  exit 1
 
130
  ;;
 
131
esac
 
132
 
 
133
exit 0