source: ipk/source.sh4/titanswapnetwork_openvpn/var/swap/etc/openvpn.sh@ 17325

Last change on this file since 17325 was 17325, checked in by nit, 14 years ago

[titan] update openvpn

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