Eu não acho que o que você quer é possível. Veja este tópico de superusuário intitulado: Como faço para destacar um processo do Terminal , inteiramente? .
Eu acho que você tem basicamente 3 opções.
Opção nº 1
Execute os scripts que estão poluindo o seu terminal de modo que eles sejam executados assim:
nohup somescript &> /dev/null &
Qual deve executar seus STDOUT & STDIN para / dev / null, faça o background deles e desconecte-os dos sinais do seu terminal se você precisar fechá-lo.
Opção nº 2
Use algo como screen
. Graças a @StephaneChazelas nos comentários parece que existem screen
pacotes disponíveis para o Debian na sua arquitetura .
Opção # 3
Se você não se importa se pausar temporariamente os processos que estão poluindo o STDOUT do seu terminal, você pode usar esta configuração: stty tostop
. Isso tem o efeito de impedir que esses processos enviem seu STDOUT para o seu terminal. Quando terminar, você poderá reativá-lo com o comando stty -nostop
. Achei isso no livro da 3ª edição do Unix Power Tools .
exemplo
Aqui está o meu aplicativo de exemplo que está poluindo o STDOUT do meu terminal:
$ while [ 1 ];do echo hi 2>&1;sleep 5;done &
Isso ecoa "hi" a cada 5 segundos assim:
[1] 30913
hi
$ hi
hi
hi
hi
Agora, quando eu corro stty tostop
:
$ stty tostop
$ date
Thu May 9 14:22:44 EDT 2013
$ date
Thu May 9 14:23:52 EDT 2013
O problema dessa abordagem é que o outro processo é interrompido:
$ jobs
[1]+ Stopped while [ 1 ]; do
echo hi 2>&1; sleep 5;
done
O problema com essa abordagem é que stty -tostop
não retomou o processo, apenas a configuração do meu stty
informando que STDOUT é permitido novamente. Então tive que retomar meu processo manualmente:
$ stty -tostop
$ jobs
[1]+ Stopped while [ 1 ]; do
echo hi 2>&1; sleep 5;
done
$ fg
while [ 1 ]; do
echo hi 2>&1; sleep 5;
done
hi
^Z
[1]+ Stopped while [ 1 ]; do
echo hi 2>&1; sleep 5;
done
$ bg
[1]+ while [ 1 ]; do
echo hi 2>&1; sleep 5;
done &
$ hi
hi
hi
hi
hi
O exemplo acima mostra minha execução stty -tostop
, em seguida, executando o comando fg
para foreground o processo while ...
que estava poluindo meu STDOUT, então Ctrl + Z , para parar o processo while ...
, use o comando background, bg
.
Ideias adicionais
Confira as ferramentas de sugestões sobre estas Perguntas e respostas sobre como usar
- Como posso deserdar um processo em execução e associá-lo a um novo shell de tela?
- Como alterar o redirecionamento de saída de um processo em execução?
Existem listas extensas de ferramentas e possíveis caminhos para você experimentar como alternativas para screen
. Talvez use tmux
ou reconecte os processos que estão poluindo seu STDOUT para outro terminal usando reptyr
.