Por vários motivos, não estou executando o logstash (7.10.1) como um serviço, mas sim invocá-lo sob demanda, em um script bash:
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/my_ls.conf &
echo ""
echo "#########################################################"
read -p "Press enter to continue "
Funciona bem, mas ao terminar de criar um índice elasticsearch com sucesso, sempre pausa com:
[INFO ] [[main]-pipeline-manager] javapipeline - Pipeline Java execution initialization time {"seconds"=>1.3}
[INFO ] [[main]-pipeline-manager] javapipeline - Pipeline started {"pipeline.id"=>"main"}
[INFO ] [[main]<file] observingtail - START, creating Discoverer, Watch with file and sincedb collections
[INFO ] [Agent thread] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[INFO ] [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}
Para fazê-lo retornar ao prompt da CLI, preciso executar de outro terminal SSH o seguinte:
pkill -f logstash
Obviamente, isso é inconveniente e estou procurando uma maneira de fazer o prompt do script bash com "Pressione qualquer tecla para sair".
Meu problema é que as instruções após a invocação do logstash (com o &
anexo), incluindo o prompt, read -p "Press enter to continue"
são exibidas antes que o logstash realmente comece a fazer seu trabalho e o script bash nunca saia para o prompt da CLI.
Qual é a maneira correta de fazer o prompt do script bash com "Pressione qualquer tecla para sair" quando o logstash concluir a criação do índice?