É possível parar a saída de um comando após bg?

8

Suponha que esta situação

wget http://file 

O wget começa a baixar o arquivo.

Coloquei em segundo plano.

^Z
bg

O comando entra em segundo plano.

Mas sua saída ainda está no console também - se o console ainda estiver aberto.

É possível parar a saída do comando?

Wget é apenas um exemplo; pense em um comando que escreve muita saída.

No console, eu sei que é possível fazer bge fechar o terminal e abrir outro, mas e se eu tiver apenas um terminal disponível e nenhum pseudo-terminal?

elbarna
fonte

Respostas:

2

Aqui está uma solução que realmente redireciona a saída de um comando enquanto está em execução: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- arquivo de log

Para uma solução que é mais utilizável em um cenário diário de uso de um terminal, você pode wget -o log http://file & executar wgetem segundo plano e gravar sua saída no loglugar do terminal. Obviamente, você não verá nenhuma saída nesse caso (mesmo se executou wgetem primeiro plano), mas você pode fazer isso tail -f logpara ver a saída à medida que ela cresce.

PawkyPenguin
fonte
2

Você quer dizer que deseja manter o wget (ou algum outro cmd) em execução em segundo plano sem enviar mensagens para o console? Se essa é a pergunta, você pode tentarredirection

$ wget http://file > /dev/null

o cmd acima redirecionará o arquivo stdoutpara /dev/nulle você não verá mensagens, exceto mensagens de erro. Se você também não deseja ver mensagens de erro, tente este

$ wget http://file 1>/dev/null 2>&1

Você pode pesquisar no Google redirectionpara obter informações mais detalhadas.

Charles
fonte