Blame view

buildroot/buildroot-2016.08.1/package/openvpn/S60openvpn 2.31 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  #!/bin/sh -e
  #
  # Original version by Robert Leslie
  # <rob@mars.org>, edited by iwj and cs
  # Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
  # Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
  
  test $DEBIAN_SCRIPT_DEBUG && set -v -x
  
  DAEMON=/usr/sbin/openvpn
  CONFIG_DIR=/etc/openvpn
  test -x $DAEMON || exit 0
  test -d $CONFIG_DIR || exit 0
  
  start_vpn () {
      $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
              --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || printf " FAILED->"
      printf " $NAME"
  }
  stop_vpn () {
     kill `cat $PIDFILE` || true
    rm $PIDFILE
  }
  
  case "$1" in
  start)
    printf "Starting openvpn:"
  
    if test -z $2 ; then
      for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
        NAME=${CONFIG%%.conf}
        start_vpn
      done
    else
      if test -e $CONFIG_DIR/$2.conf ; then
        NAME=$2
        start_vpn
      else
        printf " No such VPN: $2"
      fi
    fi
    echo "."
  
    ;;
  stop)
    printf "Stopping openvpn:"
  
    if test -z $2 ; then
      for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
        NAME=`echo $PIDFILE | cut -c18-`
        NAME=${NAME%%.pid}
        stop_vpn
        printf " $NAME"
      done
    else
      if test -e /var/run/openvpn.$2.pid ; then
        PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
        NAME=`echo $PIDFILE | cut -c18-`
        NAME=${NAME%%.pid}
        stop_vpn
        printf " $NAME"
      else
        printf " No such VPN: $2"
      fi
    fi
    echo "."
    ;;
  # We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
  reload|force-reload)
    printf "Reloading openvpn:"
    for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
      NAME=`echo $PIDFILE | cut -c18-`
      NAME=${NAME%%.pid}
  # If openvpn if running under a different user than root we'll need to restart
      if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
        stop_vpn
        sleep 1
        start_vpn
        printf "(restarted)"
      else
        kill -HUP `cat $PIDFILE` || true
  #    start-stop-daemon --stop --signal HUP --quiet --oknodo \
  #      --exec $DAEMON --pidfile $PIDFILE
      printf " $NAME"
      fi
    done
    echo "."
    ;;
  
  restart)
    $0 stop $2
    sleep 1
    $0 start $2
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
    exit 1
    ;;
  esac
  
  exit 0
  
  # vim:set ai et sts=2 sw=2 tw=0: