Visualizando Mensagens do Console do Sistema na GUI

10

No Linux, é possível visualizar mensagens de erro que aparecem no terminal de modo de texto enquanto no modo GUI, em vez de pressionar Ctrl+ Alt+ F1ou Ctrl+ Alt+ F2para visualizar as mensagens todas as vezes e voltar ao modo GUI pressionando Ctrl+ Alt+ F7?

Obrigado.

Jay
fonte
Esclarei o assunto da pergunta. O Bash é apenas um dos muitos shells diferentes para o Linux. As mensagens são enviadas para a entidade na qual (por exemplo) o bash está sendo executado, não para o próprio shell.
Fschmitt 14/10/10
Você não pode simplesmente acessar / var / log / "blah" e ler o respectivo log? Assumindo que está no processo de inicialização que você pode olhar para /var/log/boot.log
vfbsilva

Respostas:

6

Você pode ver o conteúdo atual do console de texto /dev/tty1no arquivo /dev/vcs1(onde 1 é o número em Ctrl+ Alt+ F1). (Se você tentar ler /dev/tty1, concorrerá com o programa que está sendo executado lá pela entrada do teclado.) Os dispositivos vcs normalmente são legíveis apenas pela raiz. Você obtém um instantâneo; não há maneira conveniente de obter conteúdo como ele vem.

O programa ttysnoop permite que você assista o tráfego em um console de outro terminal (incluindo um terminal X). Mas isso é algo que você deve configurar com antecedência.


Em vez de tentar capturar as mensagens quando elas foram exibidas no console de texto, organize as mensagens para um local diferente. A maioria dessas saídas do console terminará nos logs do sistema, nos arquivos em /var/log. Em X (ou seja, no modo gráfico), você pode capturar essas mensagens com xconsole, que faz parte da distribuição X padrão.

Se xconsolenão mostrar as mensagens que você deseja, edite sua pergunta para mencionar de onde essas mensagens são originárias.

Se você não conseguir xconsolemostrar nenhuma mensagem, edite sua pergunta para incluir seu sistema operacional exato, todas as etapas de configuração que você tomou e qualquer mensagem de erro que você viu.


Se as mensagens não vierem do recurso de log do sistema, mas de um programa iniciado no console de modo de texto, você será atendido melhor usando o redirecionamento . Organize para iniciar o programa assim:

mv ~/.myprogram.log ~/.myprogram.log.old
myprogram --with arguments 2>&1 >~/.myprogram.log

Em seguida, você pode ler a saída do programa de qualquer lugar, procurando no arquivo ~/.myprogram.log. Em particular, para assistir o arquivo crescer em tempo real, execute

tail -n +1 -f ~/.myprogram.log

Se o programa for iniciado pelos scripts de inicialização do X, seria melhor redirecionar a saída de toda a sequência de inicialização do X para um arquivo. De fato, muitas distribuições fazem isso automaticamente. Se você estiver usando um arquivo .xinitrcou .xsession, coloque a seguinte linha no início do arquivo para redirecionar a saída dos programas subseqüentes:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&
Gilles 'SO- parar de ser mau'
fonte
Obrigado. Simplesmente su -c "cat / dev / vcs1" e funcionou. E, como você mencionou, era um simples instantâneo das mensagens no console, mas era tudo o que eu precisava.
Jay
@ Jay: agora que eu vi seus comentários, tenho uma resposta diferente, que é que você deve usar o redirecionamento nos seus scripts de inicialização do X. Estou deixando as outras possibilidades, porque elas podem ser úteis para outras pessoas navegando no arquivo de perguntas.
Gilles 'SO- stop be evil'
1

Você pode usar o xconsole para isso. De sua descrição:

O programa xconsole exibe mensagens que geralmente são enviadas para / dev / console.

Dependendo da configuração escolhida pela sua distribuição, talvez seja necessário iniciá-la como raiz (ou seja, com sudo xconsolerespectivamente su -c xconsole),

fschmitt
fonte
obrigado. Mas existe uma maneira de visualizar as mensagens que já estão no console depois que eu iniciei o X? como por exemplo, na minha situação .. Eu escrevi um script python para alterar aleatoriamente o papel de parede. E eu o configurei para que, sempre que inicio o X, o script seja chamado. Mas o script não funciona da maneira que eu quero e recebo algumas mensagens de erro no console. Quando inicio o xconsole depois de entrar no X, só consigo ver as mensagens enviadas para o console a partir desse ponto. A página man para xconsole não diz nada sobre a ver as mensagens que já estão lá no console
Jay
Você pode, em qualquer janela do terminal (por exemplo, xterm) exibir as mensagens impressas durante a inicialização com o comando dmesg.
Fschmitt 14/10/10
O dmesg mostra apenas as mensagens que aparecem durante a inicialização. Eu não acho que ele mostra as mensagens que aparecem no console depois que eu arrancar e login e fazer "startx", por exemplo ..
Jay
1

Você já tentou xterm -C? Funciona no Ubuntu 17.04.

Erik Bennett
fonte
1
Parece digno de comentário, mas se Erik adicionar algum contexto, parece uma resposta plausível / possível: "-C Esta opção indica que esta janela deve receber a saída do console. Isso não é suportado em todos os sistemas. ...."
Jeff Schaller
Pontos justos. Da próxima vez vou fazer um comentário. Desculpe por qualquer conveniência.
Erik Bennett
-4

Se você quiser ver as mensagens do console, poderá colocar no final de /etc/rc.local,

sleep 60
Jose
fonte
2
O OP quer ver as mensagens depois de carregar a GUI. Isso simplesmente fará com que o sistema aguarde um minuto antes de carregar, para que não seja uma solução.
terdon