Ocultar informações de depuração ao executar aplicativos na linha de comando

4

Na maioria das vezes, executando um aplicativo gtk a partir da linha de comando, ele começa a descarregar informações de depuração para o stdout , mesmo que eu as coloque em segundo plano.

Exemplo:

~$ gedit test.html # and ctrl+z to suspend
zsh: suspended  gedit .zshrc
~$ bg
[1]  + continued  gedit .zshrc
~$
# do some editing
(gedit:6208): GtkSourceView-WARNING **: Could not find word to remove in buffer (whoosh), this should not happen!

(gedit:6208): GtkSourceView-WARNING **: Could not find word to remove in buffer (haystack), this should not happen!

Eu quero observar que o erro, ou aviso, muda de acordo com o que estou fazendo no momento. O GtkSourceView-WARNING mostrado aqui é um dos casos.

De qualquer forma ... Você sabe se é possível evitar que essas informações sejam impressas?

    
por tutuca 22.03.2012 / 04:08

3 respostas

8

Você pode enviar essas saídas padrão e mensagens de erro para o dispositivo nulo , para que eles não apareçam no seu terminal, por exemplo gedit test.html >/dev/null 2>&1

    
por isuldor 22.03.2012 / 04:15
-1

Eu não sei se é exatamente isso que você está procurando e se isso ajudará você, mas:

Como você está dizendo que deseja executar um aplicativo GTK em segundo plano, pode fazer isso:

nohup <applicationname> > /dev/null < /dev/null &

O programa nohup basicamente desanexa o aplicativo passado para ele do seu terminal, permitindo que a sessão do terminal termine, mas com o aplicativo ainda pode ser executado.

Você pode fechar o terminal ou continuar a usá-lo (já que todas as saídas são enviadas para / dev / null) sem problemas, devido ao comando & . Uma boa explicação simples para isso pode ser vista aqui .

    
por AeroCross 23.03.2012 / 16:06
-1

Outra maneira de fazer isso seria iniciar o comando como um processo em segundo plano e, em seguida, desanexá-lo do shell atual. Isso irá "esconder" todas as saídas, no sentido de que o shell atual não está mais interessado no processo. A sintaxe no bash é:

gedit test.html &
disown %1

Costumo usar o redirecionamento de saída mencionado na outra resposta porque é muito flexível. Você pode enviar para arquivos, dispositivos, conectar saídas etc. No entanto, isso é útil quando você não tem interesse na saída, apenas deseja iniciar um aplicativo GUI a partir de um shell e não ter outra interação com ele.

    
por Huckle 22.03.2012 / 04:39