3 votos

Viendo la salida de bash desde otro shell retrospectivamente

Tengo python proceso que se ejecuta desde una shell en Linux. Por el momento no tengo acceso físico a la máquina y sólo se puede conectar a través de ssh.
Sé que el python proceso se detuvo y sospecho que hay un error de seguimiento en este shell.
Puedo obtener el pid del shell, pero no puedo encontrar una manera para mostrar lo que está en este shell. Básicamente, estoy buscando para encontrar una manera de leer lo que ya está ahí y no perder esta salida o cerca de la shell. ¿Cuál sería el Linux herramienta para tener un segundo punto de vista de lo que está pasando en ejecución ya shell?

5voto

Kamil Maciorowski Puntos 897

Hay esta la respuesta en ServerFault:

setterm puede volcar el contenido de un Linux de la consola virtual:

setterm -archivo log.txt -dump [ttynumbers]

Sin embargo, no tienen acceso a la memoria intermedia para retroceder páginas, sólo a lo que se muestra actualmente.

Esto funcionará si quieres dar un vistazo a /dev/tty?, no /dev/pts/*, creo. Uso ps -e para identificar el número de tty de la shell en cuestión. Durante mis pruebas he logrado objeto de dumping /dev/tty2 con el siguiente comando:

sudo setterm -file log.txt -dump 2

2voto

QuickishFM Puntos 56

Mientras que usted no puede ver lo que ya ha sucedido (a menos que usted puede conseguir que el período de sesiones de la espalda) hay una excelente herramienta llamada tmux que ayuda con esto.

Simplemente instale (sudo apt install tmux), ejecutar (tmux) y, a continuación, ejecutar el proceso que desee dentro de la tmux terminal. A continuación, presione Ctrl+B, entonces D, que se desprenden - esto te llevará de vuelta a su anterior shell y puede cerrar el terminal. A continuación, conectarse a él desde SSH o abrir otra terminal (lo que quieras) y ejecutar tmux attach. Que te llevará de vuelta a su terminal. Hay otras opciones para explorar, pero esta es una forma básica de utilizar tmux a través de diferentes sesiones de terminal.

1voto

Greg A. Woods Puntos 124

El instrumento tradicional para la grabación de una sesión de terminal es script. Es ampliamente disponibles, por lo general de forma predeterminada, en la mayoría de los Unix y sistemas tipo Unix.

Algunos emuladores de terminal, incluyendo xterm de curso, y algunos pc emuladores de terminal a menudo se utiliza en la llamada "consola" dispositivo de un equipo de escritorio (es decir, directamente conectado teclado y de la pantalla), tiene una memoria intermedia para retroceder páginas y puede desplazarse hacia atrás para ver la actividad anterior, y que incluso podría ser capaz de copiar y pegar de la desplaza de nuevo la vista.

De hecho, la lección aquí es que (la mayoría) de los dispositivos TTY no grabar nada, simplemente pasar a través de él. Uno debe organizar la propia grabación, que al inicio de una script o similares herramienta de grabación, o por el uso de una adecuada emulador de terminal.

(Por CIERTO, algunos sistemas también tienen una consola "buffer", pero sólo los registros de salida desde el propio kernel, y por ella se accede con un comando llamado generalmente dmesg.)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: