Magellan Linux

Annotation of /trunk/openvpn/openvpn.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 944 - (hide 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 niro 366 #!/bin/bash
2 niro 944 # $Header: /root/magellan-cvs/src/openvpn/openvpn.rc,v 1.2 2009-12-01 17:36:15 niro Exp $
3 niro 366
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 niro 944 source /etc/conf.d/rc
14 niro 366 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 niro 944 # run startup script, if defined
33 niro 366 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 niro 944 # start every .conf in /etc/openvpn and run .sh if exists
44 niro 366 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 niro 944
70 niro 366 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 niro 944 # run shutdown script, if defined
83 niro 366 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 niro 944
94 niro 366 restart)
95     $0 stop
96     sleep 2
97     $0 start
98     ;;
99 niro 944
100 niro 366 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 niro 944
111 niro 366 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 niro 944
122 niro 366 status)
123     statusproc /usr/sbin/openvpn
124     ;;
125 niro 944
126 niro 366 *)
127     echo "Usage: openvpn {start|stop|restart|reload|reopen|status}"
128     exit 1
129     ;;
130     esac
131    
132     exit 0