Como enviar um processo para segundo plano e primeiro plano?

16

Se sim ping google.com &, o processo entra em segundo plano e continua me mostrando os detalhes do ping. Ainda posso usar o terminal com outros comandos, mas a saída do ping e a saída de outros comandos se confundem (o que não é um problema), mas não consigo finalizar esse processo de ping.

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

posixKing
fonte
2
Parece que o problema que você realmente deseja resolver está matando um trabalho em segundo plano; não há necessidade de trazê-lo para o primeiro plano. Use jobspara encontrar o ID jidda tarefa do processo em segundo plano e faça-o apenas kill %jidpara matá-lo.
gardenhead 2/09/16

Respostas:

30

fgé o comando correto para o primeiro plano de 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 primeiro plano.

Obtenha os trabalhos atuais:

$ jobs
[1]+     ping google.com &

Primeiro plano do trabalho, especificando o número:

fg %1

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

Em seguida, pressione ctrl+ cpara interromper e parar o processo

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

Para garantir a integridade, se você não usou o &no momento de chamar o processo, pode enviá-lo para o segundo plano congelando primeiro com ctrl+ ze digitandobg

Zanna
fonte
11
Simplesmente fgsem argumento parece funcionar também, pelo menos quando apenas um trabalho em segundo plano.
Cedric Reichenbach
11
@CedricReichenbach editada!
Zanna
-2

Para responder à pergunta, como enviar a saída de um processo para segundo plano e primeiro plano? , o teecomando fará:

Na computação, tee é um comando em interpretadores de linha de comando (shells) usando fluxos padrão que lê a entrada padrão e a grava na saída padrão e em um ou mais arquivos, duplicando efetivamente sua entrada. https://en.wikipedia.org/wiki/Tee_(command)

erqe4tjwtjwertjwrtj
fonte
5
Você está entendendo algo errado aqui ...
Byte Commander