Ver mensajes de la consola del sistema en la GUI

10

En Linux, ¿es posible ver mensajes de error que aparecen en el terminal del modo de texto mientras está en modo GUI, en lugar de tener que presionar Ctrl+ Alt+ F1o Ctrl+ Alt+ F2para ver los mensajes cada vez y luego volver al modo GUI presionando Ctrl+ Alt+ F7?

Gracias.

Arrendajo
fuente
Aclaré el tema de la pregunta. Bash es solo uno de los muchos shells diferentes para Linux. Los mensajes se envían a la entidad en la que se ejecuta (por ejemplo) bash, no al shell en sí.
fschmitt
¿No puede simplemente acceder a / var / log / "blah" y leer el registro respectivo? Suponiendo que está en el proceso de arranque, puede mirar /var/log/boot.log
vfbsilva

Respuestas:

6

Puede ver el contenido actual de la consola de texto /dev/tty1en el archivo /dev/vcs1(donde 1 es el número en Ctrl+ Alt+ F1). (Si intenta leer /dev/tty1, competirá con el programa que se ejecuta allí para la entrada del teclado). Los dispositivos vcs normalmente solo se pueden leer desde la raíz. Obtienes una instantánea; no hay una manera conveniente de obtener contenido tal como viene.

El programa ttysnoop le permite ver el tráfico en una consola desde otro terminal (incluido un terminal X). Pero esto es algo que debe configurar de antemano.


En lugar de tratar de atrapar los mensajes cuando se han enviado a la consola de texto, haga los arreglos para que los mensajes se dirijan a una ubicación diferente. La mayoría de los resultados de la consola terminarán en los registros del sistema, en los archivos debajo /var/log. En X (es decir, en modo gráfico), puede capturar estos mensajes con xconsole, que es parte de la distribución X estándar.

Si xconsoleno muestra los mensajes que desea, edite su pregunta para mencionar de dónde provienen estos mensajes.

Si no puede xconsolemostrar ningún mensaje, edite su pregunta para incluir su sistema operativo exacto, los pasos de configuración que haya tomado y cualquier mensaje de error que haya visto.


Si los mensajes no provienen de la instalación de registro del sistema, sino de un programa que inició en la consola de modo de texto, será mejor que utilice la redirección . Organice para iniciar el programa de esta manera:

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

Luego puede leer la salida del programa desde cualquier lugar mirando el archivo ~/.myprogram.log. En particular, para ver crecer el archivo en tiempo real, ejecute

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

Si sus scripts de inicio de X inician el programa, sería mejor redirigir la salida de toda la secuencia de inicio de X a un archivo. De hecho, muchas distribuciones hacen esto automáticamente. Si está utilizando un archivo .xinitrco .xsession, coloque la siguiente línea cerca del comienzo del archivo para redirigir la salida de los programas posteriores:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&
Gilles 'SO- deja de ser malvado'
fuente
Gracias. Simplemente hice su -c "cat / dev / vcs1" y funcionó. Y como mencionaste, era una simple instantánea de los mensajes en la consola, pero eso era todo lo que necesitaba.
Jay
@ Jay: ahora que he visto tus comentarios, tengo una respuesta diferente, que es que debes usar la redirección en tus scripts de inicio de X. Dejo las otras posibilidades porque pueden ser útiles para otras personas que navegan por el archivo de preguntas.
Gilles 'SO- deja de ser malvado'
1

Puedes usar xconsole para esto. De su descripción:

El programa xconsole muestra mensajes que generalmente se envían a / dev / console.

Dependiendo de la configuración que elija su distribución, es posible que deba iniciarla como root (es decir, con sudo xconsolerespectivamente su -c xconsole),

fschmitt
fuente
gracias. Pero, ¿hay alguna manera de ver los mensajes que ya están en la consola después de haber iniciado X? como por ejemplo, en mi situación ... He escrito un script de python para cambiar aleatoriamente el fondo de pantalla. Y lo configuré para que cada vez que inicio X, se llame al script. Pero el script no funciona como yo quiero y recibo algunos mensajes de error en la consola. Cuando inicio xconsole después de ingresar a X, solo puedo ver los mensajes que se envían a la consola a partir de ese momento. La página de manual de xconsole no dice nada sobre ver mensajes que ya están allí en la consola
Jay
Puede en cualquier ventana de terminal (por ejemplo, xterm) mostrar los mensajes impresos durante el arranque con el comando dmesg.
fschmitt
dmesg solo muestra los mensajes que aparecen durante el arranque. No creo que muestre los mensajes que aparecen en la consola después de arrancar e iniciar sesión y hacer "startx", por ejemplo ..
Jay
1

¿Lo has intentado xterm -C? Funciona en Ubuntu 17.04.

Erik Bennett
fuente
1
Suena digno de comentarios, pero si Erik agregaría algo de contexto, parece una respuesta plausible / posible: "-C Esta opción indica que esta ventana debería recibir la salida de la consola. Esto no es compatible con todos los sistemas ..."
Jeff Schaller
Puntos justos. La próxima vez haré un comentario. Perdón por cualquier inconveniente.
Erik Bennett
-4

Si desea ver los mensajes de la consola, puede colocar al final de /etc/rc.local,

sleep 60
Jose
fuente
2
El OP quiere ver los mensajes después de haber cargado la GUI. Esto simplemente hará que el sistema espere un minuto antes de cargarse, por lo que no es una solución.
terdon