Annotation of /trunk/openvpn/openvpn.rc
Parent Directory | Revision Log
Revision 366 -
(hide annotations)
(download)
Fri Sep 28 16:05:44 2007 UTC (17 years ago) by niro
File size: 2680 byte(s)
Fri Sep 28 16:05:44 2007 UTC (17 years ago) by niro
File size: 2680 byte(s)
-added rc script
1 | niro | 366 | #!/bin/bash |
2 | # $Header: /root/magellan-cvs/src/openvpn/openvpn.rc,v 1.1 2007-09-28 16:05:44 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/sysconfig/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 |