Você pode anotar o pid
de um trabalho em segundo plano logo após o lançamento:
command & pid1=$!
command & pid2=$!
$!
é o pid do último trabalho em segundo plano iniciado.
Usando ferramentas que pesquisam um pid pelos atributos do processo
em um script ou programa é mal aconselhado.
Um processo deve sempre acompanhar seus filhos. Se você descer a rota ps
/ pgrep
..., corre o risco de matar (= sinalizar) vítimas inocentes (= processos que não são seus, mas que acidentalmente correspondem à sua consulta).
Você também corre esse risco se tiver como alvo os pids certos, mas esses pids não são seus filhos. Um espaço pid
é reservado até o processo morrer e seu pai wait
s (somente o pai pode wait
em um processo). Se um pid
não é seu, ele pode ter morrido e ter sido aguardado entre o momento em que você aprende o pid
e a hora em que você o sinaliza. Então você pode estar mirando em uma vítima inocente (uma condição de corrida).