while true; do
sed '/Some app restarting/q' <(exec tail -f some-log-file.log)
kill -9 $!
done
Aqui está um resumo do que isso faz:
-
while true; do
: inicia um loop infinito -
sed '/Some app restarting/q'
: envia sua entrada para sua saída e termina quando recebe "Reinicialização de alguns aplicativos" -
<(command)
: execute comando em um subshell em segundo plano e forneça sua saída para o comando anterior -
exec
: substitua o shell (sub) pelo seguinte comando, em vez de forking para executá-lo -
kill -9 $!
: mata o processo de segundo plano mais recente iniciado, que é o tail -f (sem isso, parece que funciona, mas um processo final será deixado permanentemente toda vez que o aplicativo for reiniciado) -
done
: finaliza o loop infinito