На поверхности проблема в команде "tee" (a_process ... | tee).
Напомним, что конвейер приведет к оболочке
- Создание конвейерамежду командой
- Ожидание окончания команды LAST.
Поскольку тройник не завершит работу до тех пор, пока не завершится процесс a_process, а поскольку a_process является демоном, ваш сценарий может ждать вечно (по крайней мере, до выхода a_process).
В этом случае рассмотрите возможность отправки всего конвейера в фоновый режим.
log_file=output_$(date +"%Y_%m_%d").log
( /home/build/a_process 2>&1 | tee "$logfile" ) &
tail -fn0 "$logfile" |
...
Примечание: рассмотрите возможность установки файла журнала в переменную. Это облегчит поддержку (и понимание) сценария.