Magellan Linux

Annotation of /trunk/openvpn/openvpn.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 366 - (hide annotations) (download)
Fri Sep 28 16:05:44 2007 UTC (16 years, 7 months 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