У меня есть следующее.
- Запись Java-процессов, записывающая в stdout
- Оболочка script, начинающая процесс Java
- Еще одна оболочка script, которая выполняет предыдущую и перенаправляет журнал
- Я проверяю файл журнала командой
tail -f
для сообщения об успешном завершении.
Даже если у меня есть выход 0 в коде, я не могу закончить процесс tail -f
.
Это не позволяет завершить мой script. Есть ли другой способ сделать это в Bash?
Код выглядит следующим образом.
function startServer() {
touch logfile
startJavaprocess > logfile &
tail -f logfile | while read line
do
if echo $line | grep -q 'Started'; then
echo 'Server Started'
exit 0
fi
done
}