Visualizzazione dei messaggi della console di sistema nella GUI


10

Sotto Linux, è possibile visualizzare i messaggi di errore che compaiono sul terminale in modalità testo mentre si è in modalità GUI, invece di dover premere Ctrl+ Alt+ F1o Ctrl+ Alt+ F2per visualizzare i messaggi ogni volta e poi tornare alla modalità GUI premendo Ctrl+ Alt+ F7?

Grazie.


Ho chiarito l'oggetto della domanda. Bash è solo una delle tante shell diverse per Linux. I messaggi vengono inviati all'entità in cui (ad es.) Bash è in esecuzione, non alla shell stessa.
fschmitt,

Non puoi semplicemente accedere a / var / log / "blah" e leggere il rispettivo registro? Supponendo che sia durante il processo di avvio, potresti consultare /var/log/boot.log
vfbsilva,

Risposte:


6

Puoi vedere il contenuto corrente della console di testo /dev/tty1nel file /dev/vcs1(dove 1 è il numero in Ctrl+ Alt+ F1). (Se provi a leggere da /dev/tty1, competerai con il programma in esecuzione lì per l'input da tastiera.) I dispositivi vcs sono normalmente leggibili solo da root. Ottieni un'istantanea; non c'è modo conveniente per ottenere il contenuto così com'è.

Il programma ttysnoop ti consente di guardare il traffico su una console da un altro terminale (incluso un terminale X). Ma questo è qualcosa che devi impostare in anticipo.


Invece di provare a catturare i messaggi quando sono stati emessi sulla console di testo, fai in modo che i messaggi vengano indirizzati in una posizione diversa. La maggior parte di tali output della console finirà nei registri di sistema, nei file in /var/log. Sotto X (cioè in modalità grafica), puoi catturare questi messaggi con xconsole, che fa parte della distribuzione X standard.

Se xconsolenon mostra i messaggi desiderati, modifica la domanda per menzionare la provenienza di questi messaggi.

Se non riesci xconsolea visualizzare alcun messaggio, modifica la domanda in modo da includere il sistema operativo esatto, i passaggi di configurazione che hai eseguito e qualsiasi messaggio di errore che hai visualizzato.


Se i messaggi non provengono dalla funzione di registrazione del sistema, ma da un programma avviato nella console in modalità testo, ti verrà servito meglio utilizzando il reindirizzamento . Organizzare l'avvio del programma in questo modo:

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

Quindi puoi leggere l'output dal programma da qualsiasi luogo guardando nel file ~/.myprogram.log. In particolare, per vedere il file crescere in tempo reale, esegui

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

Se il programma viene avviato dagli script di avvio X, sarebbe meglio reindirizzare l'output dell'intera sequenza di avvio X su un file. In effetti molte distribuzioni lo fanno automaticamente. Se stai usando un file .xinitrco .xsession, metti la seguente riga vicino all'inizio del file per reindirizzare l'output dai programmi successivi:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&

Grazie. Ho semplicemente fatto su -c "cat / dev / vcs1" e ha funzionato. E come hai menzionato, era una semplice istantanea dei messaggi sulla console ma era tutto ciò di cui avevo bisogno.
Jay,

@Jay: ora che ho visto i tuoi commenti, ho una risposta diversa, che è che dovresti usare il reindirizzamento nei tuoi script di avvio X. Lascio le altre possibilità perché potrebbero essere utili ad altre persone che navigano nell'archivio delle domande.
Gilles 'SO- smetti di essere malvagio' il

1

Per questo puoi usare xconsole. Dalla sua descrizione:

Il programma xconsole visualizza i messaggi che di solito vengono inviati a / dev / console.

A seconda della configurazione scelta dalla tua distribuzione, potresti dover avviarla come root (cioè con sudo xconsolerispettivamente su -c xconsole),


grazie. Ma c'è un modo per visualizzare i messaggi che sono già lì sulla console dopo che ho avviato X? come ad esempio, nella mia situazione .. ho scritto uno script Python per cambiare casualmente lo sfondo. E l'ho impostato in modo tale che ogni volta che avvio X, viene chiamato lo script. Ma lo script non funziona nel modo in cui lo voglio e ricevo alcuni messaggi di errore sulla console. Quando avvio xconsole dopo essere entrato in X, posso vedere solo i messaggi che vengono inviati alla console da quel momento in poi. La pagina man di xconsole non dice nulla sulla visualizzazione di messaggi che sono già lì sulla console
Jay

In qualsiasi finestra del terminale (ad es. Xterm) è possibile visualizzare i messaggi stampati durante l'avvio con il comando dmesg.
fschmitt,

dmesg mostra solo i messaggi che appaiono durante l'avvio. Non credo che mostri i messaggi che compaiono sulla console dopo l'avvio e il login e fare "startx" per esempio ..
Jay

1

Ci hai provato xterm -C? Funziona su Ubuntu 17.04.


1
Sembra degno di un commento, ma se Erik aggiungesse qualche contesto, sembra una risposta plausibile / possibile: "-C Questa opzione indica che questa finestra dovrebbe ricevere l'output della console. Questo non è supportato su tutti i sistemi. ...."
Jeff Schaller

Punti giusti. La prossima volta lo farò un commento. Ci scusiamo per qualsiasi comodità.
Erik Bennett,

-4

Se vuoi vedere i messaggi della console, puoi mettere alla fine di /etc/rc.local,

sleep 60

2
L'OP vuole vedere i messaggi dopo aver caricato la GUI. Questo farà semplicemente aspettare il sistema per un minuto prima di caricarsi, quindi non è una soluzione.
terdon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.