diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn b/meta-networking/recipes-support/openvpn/openvpn/openvpn index a3cd6a2f49..e5af4b2301 100755 --- a/meta-networking/recipes-support/openvpn/openvpn/openvpn +++ b/meta-networking/recipes-support/openvpn/openvpn/openvpn @@ -4,6 +4,7 @@ # , edited by iwj and cs # Modified for openvpn by Alberto Gonzalez Iniesta # Modified for restarting / starting / stopping single tunnels by Richard Mueller +# Modified for respecting pid file on service start by Fabian Klemp test $DEBIAN_SCRIPT_DEBUG && set -v -x @@ -14,10 +15,17 @@ test -d $CONFIG_DIR || exit 0 start_vpn () { modprobe tun >/dev/null 2>&1 || true - $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \ - --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->" + start-stop-daemon --start --quiet --pidfile /var/run/openvpn.$NAME.pid \ + --exec $DAEMON -- \ + --daemon --writepid /var/run/openvpn.$NAME.pid \ + --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || rc="$?" + case $rc in + 1) echo -n " ALREADY STARTED->";; + 3) echo -n " FAILED->";; + esac echo -n " $NAME" } + stop_vpn () { kill `cat $PIDFILE` || true rm $PIDFILE