Почему «condor_wait» не обновляется при запуске - PullRequest
0 голосов
/ 10 октября 2019

У меня есть скрипт bash, предназначенный для проверки того, завершен ли файл журнала Condor:

   eval "condor_wait -wait ${PRIVATE_TIMEOUT} ${logfile}" > /dev/null &
            timer="$(date +%s)"
            myPid=$!

            while kill -0 "$myPid" 2> /dev/null
            do
                    t_passed="$(($(date +%s)-timer))"
                    printf 'Elapsed: %dh:%dm:%ds of %dh:%dm:%ds \r'\
                    $(($t_passed/3600)) $(($t_passed%3600/60)) $(($t_passed%60))\
                    $(($PRIVATE_TIMEOUT/3600)) $(($PRIVATE_TIMEOUT%3600/60)) $(($PRIVATE_TIMEOUT%60))


            done

В прошлом это работало очень хорошо. Однако в настоящее время я сталкиваюсь со странным поведением, когда выполнение condor_wait ${logfile} не обновляется, когда файл журнала завершен.

Например, если запустить condor_wait ${logfile} до завершения задания, вывод вообще не будет. Однако, если вы снова запускаете ту же команду в другом терминале, вы замечаете, что задание завершено.

Для меня это новое поведение, но теперь, похоже, оно происходит независимо от моего сценария bash. Это никогда не было проблемой раньше, и я не понимаю, почему я вижу этот эффект.

Есть ли лучший способ определить, завершена или нет указанная работа?

Большое спасибо,

Джек

...