Estou escrevendo um script bash inotifywaitpara monitorar um diretório e iniciar ações quando alterações são detectadas. Algo como:
inotifywait -m ... | while read f; do something; done
Como inotifywaitnão termina sozinho, esse script não será interrompido.
Portanto, meu plano era obter o PID do processo inotifywait, salvá-lo em um arquivo e fazer com que um processo diferente o matasse posteriormente, digamos:
inotifywait -m ... | { echo ??PID?? > pid-file; while ... }
Mas não sei como obter o PID. Existe uma maneira simples de conseguir isso? Outra maneira é salvar o PID do script de shell $$no arquivo e matar o script de shell inteiro, mas eu queria fazer uma limpeza após o loop while.
Eu tentei usar coproce acho que vai funcionar, mas parece mais complicação do que o necessário.
pgrep inotifywait. Isso lhe dará o PID, para matar pkill inotifwait,.
grep -v grep, mas ps -ef | grep [p]rocessname...faria o mesmo.
-fopção se precisar comparar com mais nomes dos executáveis.