]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
t_client.sh: Make OpenVPN write PID file to avoid various sudo issues
authorDavid Sommerseth <davids@openvpn.net>
Sat, 17 Sep 2016 09:20:26 +0000 (12:20 +0300)
committerGert Doering <gert@greenie.muc.de>
Sat, 17 Sep 2016 09:45:09 +0000 (11:45 +0200)
This resolves an issue where $! returns the PID of the sudo process instead
of the PID of OpenVPN and when sudo does not properly propagate signales
down to OpenVPN.

Trac: #738
Signed-off-by: David Sommerseth <davids@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1474104026-20615-1-git-send-email-davids@openvpn.net>
URL: http://www.mail-archive.com/search?l=mid&q=1474104026-20615-1-git-send-email-davids@openvpn.net
Signed-off-by: Gert Doering <gert@greenie.muc.de>
tests/t_client.sh.in

index 62d6730710735c717b0f35d3752aab528b7c5467..fc82cdb7b71fce084ca080d885cfe4565447fe67 100755 (executable)
@@ -263,10 +263,14 @@ do
        continue
     fi
 
+    pidfile="${top_builddir}/tests/$LOGDIR/openvpn-$SUF.pid"
+    openvpn_conf="$openvpn_conf --writepid $pidfile"
     echo " run openvpn $openvpn_conf"
     echo "# src/openvpn/openvpn $openvpn_conf" >$LOGDIR/$SUF:openvpn.log
     $RUN_SUDO "${top_builddir}/src/openvpn/openvpn" $openvpn_conf >>$LOGDIR/$SUF:openvpn.log &
-    opid=$!
+    sleep 3  # Wait for OpenVPN to initialize and have had time to write the pid file
+    opid=`cat $pidfile`
+    echo "  OpenVPN running with PID $opid"
 
     # make sure openvpn client is terminated in case shell exits
     trap "$RUN_SUDO kill $opid" 0