]> 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:49:35 +0000 (11:49 +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>
(cherry picked from commit e0926ebfe55347843af701216be9598827a1367a)

tests/t_client.sh.in

index 032d0d5013469f422b6b950744431232dba0efe3..29353957485a6210770695381c965098d3752512 100755 (executable)
@@ -233,10 +233,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