diff --git a/contrib/teamcity/ibd.sh b/contrib/teamcity/ibd.sh --- a/contrib/teamcity/ibd.sh +++ b/contrib/teamcity/ibd.sh @@ -4,10 +4,10 @@ ### # Initial Block Download script. -# +# # Runs a bitcoind process until initial block download is complete. # Forwards the exit code from bitcoind onward. -# +### MYPID=$$ @@ -16,26 +16,25 @@ touch ibd/debug.log chmod +x bitcoind +# On shutdown, cleanup background processes spawned by this script cleanup() { - echo "Terminating (pid: ${1})" pkill -P ${MYPID} tail || true } +trap "cleanup" EXIT # Launch bitcoind using this script's parameters ./bitcoind -datadir=ibd $* & bitcoin_pid=$! -trap "cleanup ${bitcoin_pid}" EXIT - # Wait for IBD to finish and kill the daemon -( +( set +o pipefail tail -f ibd/debug.log | grep -m 1 'progress=1.000000' - echo "Initial block download complete, killing bitcoin daemon." + echo "Initial block download complete, killing bitcoin daemon (PID: ${bitcoin_pid})." kill ${bitcoin_pid} ) & -# Show some progress +# Show some progress tail -f ibd/debug.log | grep 'UpdateTip' | awk 'NR % 10000 == 0' & # Wait for bitcoind to exit