source: ipk/source.sh4/network_openvpn/_path_/etc/openvpn.sh @ 26587

Last change on this file since 26587 was 26587, checked in by obi, 10 years ago

fix tpks

File size: 2.5 KB
RevLine 
[23626]1#!/bin/sh -e
2#
3
4test $DEBIAN_SCRIPT_DEBUG && set -v -x
5
[23730]6DAEMON=_path_/bin/openvpn
7CONFIG_DIR=_path_/etc/openvpn
[23626]8test -x $DAEMON || exit 0
9test -d $CONFIG_DIR || exit 0
10
11start_vpn () {
12        if ( [ ! -c /dev/net/tun ] ) then
13                if ( [ ! -d /dev/net ] ) then
14                        mkdir -m 755 /dev/net
15                fi
16                mknod /dev/net/tun c 10 200
17        fi
[24529]18
[26587]19        if ( !(lsmod | grep -q "tun") ); then
20                if [ -e /lib/modules/tun.ko ]; then
[23626]21                        insmod /lib/modules/tun.ko
[26587]22                elif [ -e /var/lib/modules/tun.ko ]; then
23                        insmod /var/lib/modules/tun.ko
24                elif [ -e _path_/lib/modules/tun.ko ]; then
25                        insmod _path_/lib/modules/tun.ko
26                fi
27        fi
[23730]28        /lib/ld-linux.so.2 --library-path _path_/lib $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
[23626]29        --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
30        echo -n " $NAME"
31}
32stop_vpn () {
33   kill `cat $PIDFILE` || true
34  rm $PIDFILE
35}
36
37case "$1" in
38start)
39  echo -n "Starting openvpn:"
40
41  if test -z $2 ; then
42    for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
43      NAME=${CONFIG%%.conf}
44      start_vpn
45    done
46  else
47    if test -e $CONFIG_DIR/$2.conf ; then
48      NAME=$2
49      start_vpn
50    else
51      echo -n " No such VPN: $2"
52    fi
53  fi
54  echo "."
55
56  ;;
57stop)
58  echo -n "Stopping openvpn:"
59
60  if test -z $2 ; then
61    for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
62      NAME=`echo $PIDFILE | cut -c18-`
63      NAME=${NAME%%.pid}
64      stop_vpn
65      echo -n " $NAME"
66    done
67  else
68    if test -e /var/run/openvpn.$2.pid ; then
69      PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
70      NAME=`echo $PIDFILE | cut -c18-`
71      NAME=${NAME%%.pid}
72      stop_vpn
73      echo -n " $NAME"
74    else
75      echo -n " No such VPN: $2"
76    fi
77  fi
78  echo "."
79  ;;
80# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
81reload|force-reload)
82  echo -n "Reloading openvpn:"
83  for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
84    NAME=`echo $PIDFILE | cut -c18-`
85    NAME=${NAME%%.pid}
86# If openvpn if running under a different user than root we'll need to restart
87    if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
88      stop_vpn
89      sleep 1
90      start_vpn
91      echo -n "(restarted)"
92    else
93      kill -HUP `cat $PIDFILE` || true
94#    start-stop-daemon --stop --signal HUP --quiet --oknodo \
95#      --exec $DAEMON --pidfile $PIDFILE
96    echo -n " $NAME"
97    fi
98  done
99  echo "."
100  ;;
101
102restart)
103  $0 stop $2
104  sleep 1
105  $0 start $2
106  ;;
107*)
108  echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
109  exit 1
110  ;;
111esac
112
113exit 0
114
115# vim:set ai et sts=2 sw=2 tw=0:
Note: See TracBrowser for help on using the repository browser.