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

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

fix

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