From f62c85e86b6b61f494e67d328cc76c4a55ce145f Mon Sep 17 00:00:00 2001 From: Fabian Klemp Date: Tue, 30 Jul 2019 12:35:36 +0200 Subject: openvpn: respect pid file in init.d service start openvpn only provides options to update a pid file but not to check it for running processes. Consecutive issued start commands therefore lead to multiple running processes with the same configurations, which is the origin of all kinds of problems of which unnecessary resource usage is the least. Using start-stop-daemon the pid file is inspected for running processes before start. Signed-off-by: Fabian Klemp Signed-off-by: Khem Raj Signed-off-by: Armin Kuster --- meta-networking/recipes-support/openvpn/openvpn/openvpn | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 -- cgit 1.2.3-korg