¿El modo GNU Screen Copy bloquea la ejecución?

11

Uso el modo de retroceso / copia de GNU Screen. Entonces presioné Control-A [para ingresar al modo de copia, desplácese hacia arriba a la sección que me interesa ... y luego me olvido.

Sin embargo, parece que salir de la pantalla de GNU en modo scrollback / copy bloquea la ejecución de (cualquier aplicación que estuviera activa en ese momento). Por ejemplo, si enciendo un servidor web local si estoy en modo scrollback / copy, las solicitudes hechas a ese servidor web se agotarán: el proceso no responde hasta que salga del modo copy / scrollback.

Lo he visto tanto en el script / servidor Ruby On Rails como con la herramienta Python Paste.

He considerado activar el modo de inicio de sesión para mis ventanas, luego, simplemente, seguir / recorrer los archivos de registro como una alternativa, pero si esto puede controlarse por otros medios (configuración, activación del modo de copia de una manera diferente), estoy muy interesado.

Mi versión de pantalla dice:

Versión de pantalla 4.00.03 (FAU) 23-oct-06

(Pregunté esto en quora.com, pero tal vez este es un lugar mejor)

RyanWilcox
fuente

Respuestas:

7

La razón por la que sus procesos están bloqueando es porque la pantalla bloqueará la tubería de salida del proceso mientras está en modo copiar y pegar. No lo veo realmente como un error, ya que de manera realista le está pidiendo a la pantalla que almacene una cantidad potencialmente ilimitada de información en su búfer mientras está copiando / pegando. Si desea que pase la salida de un programa, pero también pueda pausarlo de vez en cuando, intente esto.

program > logfile 2>&1 & 
less logfile

El 2> y 1 combinarán stderr y stdout de su programa. El & envía el programa a un segundo plano. Usa fg para ponerlo en primer plano si lo necesitas. Ahora presione F para seguir el final del archivo de registro a medida que crece con menos. Presione ctrl + c si necesita detenerse y examinar algo, luego F para seguir nuevamente. También puede presionar & para limitar las líneas visibles en menos a una expresión regular. Muy útil cuando revisa archivos de registro.

jmh
fuente
"la pantalla bloqueará la tubería de salida del proceso mientras está en modo copiar y pegar" - esto podría ser cierto una vez que se haya generado una cierta cantidad de salida, pero no parece ser cierto en este caso: while ((1)) ; do echo $i; i=$((i+1)); sleep 0.1; done- intente invocar Copiar modo y espera un poco. Cuando salga del modo de copia, el valor de i habrá aumentado, lo que muestra que la ejecución continuó en segundo plano. Sin embargo, he visto la salida de bloque de pantalla para algunos procesos, por lo que tengo curiosidad por saber qué determina exactamente si los bloques de pantalla o no.
davidA
"qué determina exactamente si la pantalla se bloquea o no": el tamaño del búfer de desplazamiento lo determina. Puede aumentarlo para que sea ilimitado, pero esto requerirá memoria. Pero no bloqueará.
San