Messages in this thread | | | Subject | Re: [PATCH 05/11] selftests: net/fcnal: kill_procs via spin instead of sleep | From | Leonard Crestez <> | Date | Thu, 7 Oct 2021 00:16:11 +0300 |
| |
On 06.10.2021 17:45, David Ahern wrote: > On 10/6/21 5:47 AM, Leonard Crestez wrote: >> Sleeping for one second after a kill is not necessary and adds up quite >> quickly. Replace with a fast loop spinning until pidof returns nothing. >> >> Signed-off-by: Leonard Crestez <cdleonard@gmail.com> >> --- >> tools/testing/selftests/net/fcnal-test.sh | 11 +++++++++-- >> 1 file changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh >> index 0bd60cd3bc06..b7fda51deb3f 100755 >> --- a/tools/testing/selftests/net/fcnal-test.sh >> +++ b/tools/testing/selftests/net/fcnal-test.sh >> @@ -176,12 +176,19 @@ show_hint() >> fi >> } >> >> kill_procs() >> { >> - killall nettest ping ping6 >/dev/null 2>&1 >> - sleep 1 >> + local pids >> + while true; do >> + pids=$(pidof nettest ping ping6) >> + if [[ -z $pids ]]; then >> + break >> + fi >> + kill $pids >> + sleep 0.01 >> + done >> } >> >> do_run_cmd() >> { >> local cmd="$*" >> > > ideally the script keeps track of processes it launches and only kills > those. The original killall was just a stop gap until the process > tracking was added.
That's harder to do. This is much faster and not in any way worse than killall + sleep.
Some sort of a wrapper would have to added for each process running the background, for each run_ping_bg.
If nettest forks by itself then $! won't work, maybe some sort of --pid-file switch would be required?
-- Regards, Leonard
| |