Magellan Linux

Contents of /trunk/openvpn/openvpn.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 944 - (show annotations) (download)
Tue Dec 1 17:36:15 2009 UTC (14 years, 5 months ago) by niro
File size: 2671 byte(s)
-new init layout

1 #!/bin/bash
2 # $Header: /root/magellan-cvs/src/openvpn/openvpn.rc,v 1.2 2009-12-01 17:36:15 niro Exp $
3
4 #%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k
5 #%start: 24
6 #%stop: 76
7
8 #deps
9 #%needs:
10 #%before:
11 #%after:
12
13 source /etc/conf.d/rc
14 source $rc_functions
15
16 # Lockfile
17 lock="/var/lock/openvpn"
18
19 # PID directory
20 piddir="/var/run/openvpn"
21
22 # config directory
23 configdir="/etc/openvpn"
24
25 case "$1" in
26 start)
27 echo -e ${COLOREDSTAR}"Starting OpenVPN: "
28
29 # load neccessary tun module
30 modprobe tun >/dev/null 2>&1
31
32 # run startup script, if defined
33 if [ -x ${configdir}/opnvpn-startup ]
34 then
35 echo " Running startup script ... "
36 ${configdir}/openvpn-startup
37 fi
38
39 [ ! -d ${piddir} ] && install -d ${piddir}
40
41 rm -f ${piddir}/*.pid
42
43 # start every .conf in /etc/openvpn and run .sh if exists
44 for config in ${configdir}/*.conf
45 do
46 echo " Starting server for ${config} ... "
47
48 basename=$(basename ${config} .conf)
49 # running user script
50 if [[ -f ${configdir}/${basename}.sh ]]
51 then
52 echo " Running user-defined script for ${config} ... "
53 source ${configdir}/${basename}.sh
54 evaluate_retval
55 fi
56
57 rm -f ${piddir}/${basename}.pid
58
59 start-stop-daemon --start --exec /usr/sbin/openvpn \
60 --pidfile ${piddir}/${basename}.pid -- \
61 --daemon --writepid ${piddir}/${basename}.pid \
62 --config ${config} --cd ${configdir}
63 evaluate_retval
64 done
65
66 update_svcstatus $1
67 splash svc_started "$(basename $0)" 0
68 ;;
69
70 stop)
71 echo -e ${COLOREDSTAR}"Stopping OpenVPN:"
72
73 for pidfile in ${piddir}/*.pid
74 do
75 basename=$(basename ${pidfile} .pid)
76
77 echo " Stopping server for ${configdir}/${basename}.conf ... "
78 start-stop-daemon --stop --exec /usr/sbin/openvpn --pidfile ${pidfile}
79 evaluate_retval
80 done
81
82 # run shutdown script, if defined
83 if [[ -x ${configdir}/openvpn-shutdown ]]
84 then
85 echo " Running shutdown script ... "
86 ${configdir}/openvpn-shutdown
87 evaluate_retval
88 fi
89
90 update_svcstatus $1
91 splash svc_stopped "$(basename $0)" 0
92 ;;
93
94 restart)
95 $0 stop
96 sleep 2
97 $0 start
98 ;;
99
100 reload)
101 for pidfile in ${piddir}/*.pid
102 do
103 basename=$(basename ${pidfile} .pid)
104
105 echo " Reloading server for ${configdir}/${basename}.conf ... "
106 kill -HUP $(< ${pidfile}) >/dev/null 2>&1
107 evaluate_retval
108 done
109 ;;
110
111 reopen)
112 for pidfile in ${piddir}/*.pid
113 do
114 basename=$(basename ${pidfile} .pid)
115
116 echo " Reopen server for ${configdir}/${basename}.conf ... "
117 kill -USR1 $(< ${pidfile}) >/dev/null 2>&1
118 evaluate_retval
119 done
120 ;;
121
122 status)
123 statusproc /usr/sbin/openvpn
124 ;;
125
126 *)
127 echo "Usage: openvpn {start|stop|restart|reload|reopen|status}"
128 exit 1
129 ;;
130 esac
131
132 exit 0