contrib/openvpn/openvpn
2012-04-12 20:13:05 +02:00

66 lines
1.2 KiB
Bash

#!/bin/sh
#
# /etc/rc.d/openvpn: start/stop openvpn daemon
#
CONFDIR=/etc/openvpn
RUNDIR=/var/run
# optional arguments to openvpn
OPTARGS="--fast-io"
usage() {
echo "Usage: $0 [start|stop|restart] <config-name>"
exit 0
}
# require a config name to be specified
if [ -z "$2" ]
then
usage
fi
CONF=${CONFDIR}/${2}.conf
PID=${RUNDIR}/openvpn.${2}.pid
# check for the existence of the specified config
if [ ! -f ${CONF} ]
then
echo "Can't find config file ${CONF}! Exiting."
exit 1
fi
case $1 in
start)
# check for an existing PID; this tunnel may already be running
if [ -f ${PID} ]
then
echo "VPN '${2}' appears to be running already. If not, remove the stale PID file '${PID}'. Exiting."
exit 2
fi
# start the specified VPN config
echo "Starting VPN '${2}'..."
/usr/sbin/openvpn --config ${CONF} --writepid ${PID} --daemon ovpn-${2} ${OPTARGS}
;;
stop)
# check for an existing PID; this tunnel should already be running
if [ ! -f ${PID} ]
then
echo "VPN '${2}' doesn't appear to be running. Exiting."
exit 3
fi
# stop the specified VPN config
echo "Stopping VPN '${2}'..."
kill `cat ${PID}`
rm -f ${PID}
;;
restart)
${0} stop ${2}; sleep 3; ${0} start ${2}
;;
*)
usage
;;
esac
# End of file