Subject: [PATCH net-next v2 1/7] selftests: drv-net: add a warning for bkg + shell + terminate

From: Jakub Kicinski <[email-masked]>
Date: Wed, 19 Feb 2025 15:49:50 -0800

Joe Damato reports that some shells will fork before running
the command when python does "sh -c $cmd", while bash does
an exec of $cmd directly. This will have implications for our
ability to terminate the child process on bash vs other shells.
Warn about using

	bkg(... shell=True, termininate=True)

most background commands can hopefully exit cleanly (exit_wait).

Link: https://lore.kernel.org/Z7Yld21sv_Ip3gQx@LQ3V64L9R2
Signed-off-by: Jakub Kicinski <[email-masked]>
---
v2: new
---
 tools/testing/selftests/net/lib/py/utils.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/testing/selftests/net/lib/py/utils.py b/tools/testing/selftests/net/lib/py/utils.py
index 9e3bcddcf3e8..33b153767d89 100644
--- a/tools/testing/selftests/net/lib/py/utils.py
+++ b/tools/testing/selftests/net/lib/py/utils.py
@@ -61,6 +61,10 @@ import time
         self.terminate = not exit_wait
         self.check_fail = fail
 
+        if shell and self.terminate:
+            print("# Warning: combining shell and terminate is risky!")
+            print("#          SIGTERM may not reach the child on zsh/ksh!")
+
     def __enter__(self):
         return self
 
-- 
2.48.1