executa o comando após o processo terminar em shell diferente

6

Estou executando um comando que está processando alguns dados em uma janela do shell (digamos que tenha pid 200). Infelizmente esqueci de adicionar o & para executá-lo em segundo plano.

Eu preciso executar algum script de análise após o término do pid 200. Eu pensei que poderia apenas abrir outra janela do shell e fazer

wait 200; ./myanalysis.sh

Mas me queixa

"-bash: wait: pid 200 is not a child of this shell"

Com isso em mente, existe uma maneira de executar meu script de análise automaticamente depois que esse processo termina?

    
por Damonkashu 26.10.2011 / 10:56

2 respostas

4

Você não pode "esperar" por processos não-filhos e precisa verificá-los manualmente. Veja, por exemplo, esta resposta de estouro de pilha .

    
por 28.07.2012 / 10:58
2

Você pode usar ^ z e fazer o seguinte?

wait 200; ./myanalysis.sh&
fg %1

Isso irá esperar até que pid 200 termine, então execute sua análise e, em seguida, coloque-se em primeiro plano.

    
por 26.10.2011 / 11:19