Digamos que acabei de iniciar um comando que levará muito tempo para ser executado, como hg clone
todo o conjunto de desenvolvimento do Pypy. No meio, decido que gostaria de executar outro processo, como hg up
, assim que o primeiro retornar. Existe uma maneira de anexar um comando para executar quando o processo retornar, sem parar o comando/processo e depois reiniciá-lo como um comando encadeado? comando/processo?
Responder1
Supondo que você esteja usando bash
e colocando a tarefa de longa execução no plano de fundo do shell atual, executando longtask &
ou iniciando a tarefa e pressionando CTRL+ Z, você pode adicionar um comando extra para executar, por exemplo:
$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+ Done sleep 45
Done
$
No exemplo acima, o echo "Done"
só é executado após a conclusão do wait
no PID 27722.
O que não encontrei é uma maneira de colocar esse comando adicional em segundo plano para permitir que você continue trabalhando no mesmo shell. Deve haver uma maneira de fazer isso - esperamos que isso lhe dê um começo.