Como enviar um processo para segundo plano e primeiro plano?

13

Se eu fizer ping google.com & , o processo vai para o segundo plano e continua mostrando os detalhes do ping. Eu ainda posso usar o terminal com outros comandos, mas a saída do ping e a saída de outros comandos são misturadas (o que não é um problema), mas não posso terminar este processo de ping.

Para isso, quero trazê-lo para o primeiro plano e, em seguida, pressione ctrl + c ou algo assim. Eu tentei usar fg , mas também não funcionou. Então, como faço com que ping google.com & volte ao primeiro plano depois que eu pressionar a tecla return no final do meu comando ping?

    
por posixKing 02.09.2016 / 09:45

2 respostas

26

fg é o comando correto para colocar em primeiro plano um trabalho, mas se houver mais de um trabalho em execução, você deverá especificar o número do trabalho. Se você digitar apenas fg , o último trabalho em segundo plano (considerado o trabalho atual pelo shell) será trazido para o primeiro plano.

Obtenha os trabalhos atuais:

$ jobs
[1]+     ping google.com &

Forme o trabalho em primeiro plano, especificando o número:

fg %1

O comando pode ser quebrado pela saída do processo em execução, mas ainda funcionará, você pode ignorar a interrupção.

Em seguida, pressione ctrl + c para interromper e parar o processo

Como mencionado em um comentário, você também pode enviar sinais por número de trabalho, por exemplo kill %1

Para completar, se você não usou & no momento de chamar o processo, você pode enviá-lo para o segundo plano congelando com ctrl + z e, em seguida, digite bg

    
por Zanna 02.09.2016 / 09:54
-2

Para responder à pergunta, ou seja, Como enviar a saída de um processo para segundo plano e primeiro plano? , o comando tee será:

Na computação, tee é um comando em interpretadores de linha de comando (shells) usando fluxos padrão que lêem entradas padrão e as grava na saída padrão e em um ou mais arquivos, duplicando efetivamente sua entrada. link

    
por erqe4tjwtjwertjwrtj 02.09.2016 / 20:31