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

Last change on this file since 24529 was 24529, checked in by obi, 12 years ago

fix openvpn

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
19# if ( !(lsmod | grep -q "tun") ); then
20# if [ -e /lib/modules/tun.ko ]; then
21 insmod /lib/modules/tun.ko
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
28 /lib/ld-linux.so.2 --library-path _path_/lib $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
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.