fg um processo bg porque você esqueceu de redirecionar a saída para / dev / null

1

Eu fiz Ctrl + Z bg com a intenção de rejeitar o próximo, mas eu esqueci de redirecionar, agora eu não consigo chegar ao meu terminal porque a rolagem do saída (tarballed um diretório enorme com conjunto detalhado).

Como obtenho uma solicitação quando STDOUT de tar preenche a tela e já a enviei para o segundo plano?

Estou usando o Bash 4.

    
por Gregg Leventhal 15.01.2014 / 23:30

1 resposta

3

Você já tem um prompt, você não pode vê-lo porque está rolando na tela.

A coisa mais simples é provavelmente Ctrl-C (para matar qualquer linha parcial que você tenha digitado no prompt), fg , enter , Ctrl-Z , que o trará de volta ao primeiro plano e o suspenderá novamente. Simples é bom, neste caso, quando você está fazendo isso cegamente.

Pode levar alguns segundos para funcionar, pois seu terminal está com dificuldades para acompanhar a produção.

Você pode ver claramente o que isso faz usando um comando que envia para o terminal lentamente (observe que meu PS1 inclui $? quando diferente de zero):

anthony@Zia:~$ perl -E 'say "ha" while sleep(1)'
ha
ha
^Z
[1]+  Stopped                 perl -E 'say "ha" while sleep(1)'
anthony@Zia:~ [$?=148]$ bg %1
[1]+ perl -E 'say "ha" while sleep(1)' &
ha
anthony@Zia:~$ ha
ha
ha
ha
ha
^C
anthony@Zia:~ [$?=130]$ ha
fha
g
perl -E 'say "ha" while sleep(1)'
ha
^Z
[1]+  Stopped                 perl -E 'say "ha" while sleep(1)'
anthony@Zia:~ [$?=148]$ 

Neste ponto, você o interrompeu novamente e pode fazer o que quiser com ele.

    
por 15.01.2014 / 23:39