Se o seu objetivo é simplesmente observar se o processo aparece, você pode fazer isso:
watch -n1 "ps -ef | grep command | grep -v grep"
Pessoalmente, eu freqüentemente uso a técnica de pesquisa com pgrep
e while
loop da seguinte forma:
while ! pgrep -f command ; do true; done && echo "Process started"
Esta é uma boa abordagem se você deseja executar um comando adicional se um processo aparecer ou desaparecer.
Execução de teste:
Amaneiracomoissofuncionaémuitosimples:
- oloopexecuta
pgrep-fcommand
emcadaiteraçãoenegaseustatusdesaída.Assim,seoprocessonãoforencontrado,ostatusdesaídade1
seránegadopara0
,mantendo,assim,oloopemexecução. - Quandooprocessoaparecer,ostatusdesaídasetornará
0
,seránegadopara1
,fazendocomqueolooptermineeexibaamensagemcomecho
Estaéumaabordagembastanteuniversal,funcionacomqualquershellelinguagemdescript.Porexemplo,euuseiissoemumscriptpythonquedetectaamudançaipe