Monitoramento ao vivo de trabalhos em segundo plano

0

Eu executei um comando assim: nohup some_command & . Agora este comando está em segundo plano. Eu posso ver isso com o comando jobs .

Exemplo de saída:

[1]+  Running                 nohup some_command &

É de alguma forma possível ter uma representação live do status que vem do comando jobs , semelhante a como top funciona? Então, quando nohup some_command & for concluído, ele desaparecerá imediatamente da lista?

    
por Automatico 26.07.2015 / 04:28

2 respostas

2

Se tudo o que você deseja é que as notificações de conclusão do trabalho sejam impressas imediatamente, mesmo se você estiver digitando um prompt ou se algum outro trabalho estiver em primeiro plano, basta executar set -o notify .

Se você quiser um comando em primeiro plano que exiba o status de trabalhos em segundo plano do shell atual, será possível executar jobs em um loop. É fácil fazer isso em tela cheia:

tput clear
jobs
while sleep 1; do
  tput clear
  jobs
done

Se você deseja exibir a lista abaixo do prompt sem limpar a tela, salve a posição do cursor no início e restaure-a em cada execução:

tput sc
jobs
while sleep 1; do
  tput rc
  jobs
done
    
por 26.07.2015 / 14:32
0

Você pode criar uma função de shell:

myjobwatch() { while true; do jobs; sleep 2; clear; done; }

Em seguida, basta executar myjobwatch

    
por 26.07.2015 / 10:11