From 14935049dc6c386ae7915448c08178fb7c774151 Mon Sep 17 00:00:00 2001 From: Guillaume Pasero <guillaume.pasero@c-s.fr> Date: Mon, 30 Oct 2017 11:48:39 +0100 Subject: [PATCH] PKG: use a retry loop to close otbgui --- Packaging/Files/selftester.sh | 41 ++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/Packaging/Files/selftester.sh b/Packaging/Files/selftester.sh index 3d3a83ca03..8137cfa299 100755 --- a/Packaging/Files/selftester.sh +++ b/Packaging/Files/selftester.sh @@ -122,25 +122,32 @@ for app in $OTB_APPS; do echo "" >tmp.log "bin/otbgui_$app" >tmp.log 2>&1 & GUI_PID=$! - sleep 5s - # Check process tree - CHILD_PROC=$(ps_children $GUI_PID | grep "bin/otbgui $app") - if [ -n "$CHILD_PROC" ]; then - CHILD_PID=$(echo "$CHILD_PROC" | cut -d ' ' -f 1) - NEXT_CHILD_PROC=$(ps_children "$CHILD_PID" | grep 'otbApplicationLauncherQt') - if [ -n "$NEXT_CHILD_PROC" ]; then - NEXT_CHILD_PID=$(echo "$NEXT_CHILD_PROC" | cut -d ' ' -f 1) - kill -9 "$NEXT_CHILD_PID" - wait "$NEXT_CHILD_PID" 2>/dev/null - else - echo "ERROR: otbApplicationLauncherQt $app failed to launch" - tee -a selftest_report.log < tmp.log - exit_if + CHILD_PID="" + NEXT_CHILD_PID="" + nb_try=0 + while [ -z "$NEXT_CHILD_PID" -a $nb_try -lt 10 ]; do + sleep 1s + CHILD_PROC=$(ps_children $GUI_PID | grep "bin/otbgui $app") + if [ -n "$CHILD_PROC" ]; then + CHILD_PID=$(echo "$CHILD_PROC" | cut -d ' ' -f 1) + NEXT_CHILD_PROC=$(ps_children "$CHILD_PID" | grep 'otbApplicationLauncherQt') + if [ -n "$NEXT_CHILD_PROC" ]; then + NEXT_CHILD_PID=$(echo "$NEXT_CHILD_PROC" | cut -d ' ' -f 1) + fi fi + nb_try=$(( nb_try + 1 )) + done + if [ -n "$NEXT_CHILD_PID" ]; then + kill -9 "$NEXT_CHILD_PID" + wait "$NEXT_CHILD_PID" 2>/dev/null + elif [ -n "$CHILD_PID" ]; then + echo "ERROR: otbApplicationLauncherQt $app failed to launch" + tee -a selftest_report.log < tmp.log + exit_if else - echo "ERROR: bin/otbgui_$app failed to launch" - tee -a selftest_report.log < tmp.log - exit_if + echo "ERROR: bin/otbgui_$app failed to launch" + tee -a selftest_report.log < tmp.log + exit_if fi fi app_index=$(( app_index + 1 )) -- GitLab