我有一个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脚本而发生。以前从来没有问题,而且我不明白为什么会看到这种效果。
是否有更好的方法确定上述工作是否完成?
非常感谢,
杰克