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

Last change on this file since 23730 was 23730, checked in by nit, 13 years ago

[titan] update tun

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