У меня есть приложение Java, и я хочу перезапустить его, когда в журнале появляется определенное сообщение. До сих пор я пробовал следующий скрипт:
#!/bin/bash
java -jar app.jar > app.log 2>&1
tail -f app.log | while read LOGLINE
do
[[ "${LOGLINE}" == *"channel incative"* ]] && pkill -P $$ java && java -jar app.jar > app.log 2>&1
done
Я запускаю сценарий с помощью следующей команды
nohup sh app.sh &
Но он работает не так, как ожидалось. Есть ли у вас какие-либо предложения?
ps java-приложение является устаревшим приложением от третьей стороны, поэтому я не могу выполнить логику в самом коде приложения.