#!/bin/sh export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" DAEMON=/usr/sbin/openvpn DESC="virtual private network daemon" CONFIG_DIR=/etc/openvpn # Source defaults file; edit that file to configure this script. AUTOSTART="all" STATUSREFRESH=10 if test -e /etc/default/openvpn ; then . /etc/default/openvpn fi start_vpn () { if grep -q '^[ ]*daemon' $CONFIG_DIR/$NAME.conf ; then # daemon already given in config file DAEMONARG= else # need to daemonize #DAEMONARG="--daemon ovpn-$NAME" DAEMONARG="--syslog ovpn-$NAME" fi if grep -q '^[ ]*status ' $CONFIG_DIR/$NAME.conf ; then # status file already given in config file STATUSARG="" elif test $STATUSREFRESH -eq 0 ; then # default status file disabled in /etc/default/openvpn STATUSARG="" else # prepare default status file STATUSARG="--status /var/run/openvpn.$NAME.status $STATUSREFRESH" fi echo -n " $NAME" STATUS="OK" # Check to see if it's already started... if test -e /var/run/openvpn.$NAME.pid ; then STATUS="FAILED - Already running (PID file exists)" else exec $DAEMON --writepid /var/run/openvpn.$NAME.pid \ $DAEMONARG $STATUSARG --cd $CONFIG_DIR \ --config $CONFIG_DIR/$NAME.conf < /dev/null || STATUS="FAILED" fi echo -n "($STATUS)" } echo -n "Starting $DESC:" for NAME in $AUTOSTART ; do if test -e $CONFIG_DIR/$NAME.conf ; then start_vpn else echo -n " (failure: No such VPN: $NAME)" fi done