La modalità GNU Screen Copy blocca l'esecuzione?


11

Uso la modalità scrollback / copia di GNU Screen. Quindi premo Control-A [per accedere alla modalità copia, scorrere fino alla sezione che mi interessa ... e poi dimentico.

Tuttavia, sembra che lasciare la schermata GNU in modalità scrollback / copia blocchi l'esecuzione di (qualunque app fosse attiva al momento). Ad esempio, se accendo un server web locale se sono in modalità di scorrimento / copia, le richieste fatte a quel server Web scadranno: il processo non risponde fino a quando non esco dalla modalità di copia / scorrimento.

L'ho visto sia nello script / server Ruby On Rails che con lo strumento Incolla di Python.

Ho pensato di attivare la modalità di registrazione per le mie finestre, quindi di seguire in modo alternato i file di log in alternativa, ma se questo può essere controllato in altro modo (impostazione, attivazione della modalità di copia in un modo diverso), sono molto interessato.

La mia versione dello schermo dice:

Versione schermo 4.00.03 (FAU) 23-ott-06

(L'ho chiesto su quora.com, ma forse questo è un posto migliore)

Risposte:


7

Il motivo per cui i processi sono bloccati è perché lo schermo bloccherà la pipe di output del processo mentre si è in modalità copia incolla. Non lo vedo davvero come un bug, dal momento che realisticamente stai chiedendo allo schermo di memorizzare una quantità potenzialmente illimitata di informazioni nel suo buffer mentre stai copiando / incollando. Se vuoi far passare l'output di un programma, ma puoi anche metterlo in pausa di tanto in tanto, prova questo.

program > logfile 2>&1 & 
less logfile

2> & 1 combinerà stderr e stdout dal tuo programma. Il & invia il programma in background. Usa fg per portarlo in primo piano se ne hai bisogno. Ora premi F per seguire la fine del file di registro man mano che cresce con meno. Premi ctrl + c se devi fermarti ed esaminare qualcosa, quindi F per seguire di nuovo. Puoi anche premere & per limitare le linee visibili in meno a un'espressione regolare. Molto utile quando si esaminano i file di registro.


"schermo bloccherà la pipe di output del processo mentre ci si trova in modalità copia incolla" - questo potrebbe essere vero una volta generata una certa quantità di output, ma in questo caso non sembra vero: while ((1)) ; do echo $i; i=$((i+1)); sleep 0.1; done- provare a invocare Copia modalità e attendi un po '. Quando si esce dalla modalità di copia, il valore di i salterà, mostrando che l'esecuzione è continuata in background. Eppure ho visto l'output del blocco dello schermo per alcuni processi, quindi sono curioso di sapere cosa determina esattamente se i blocchi dello schermo o no.
davidA

"ciò che determina esattamente se lo schermo si blocca o meno" - lo determina la dimensione del buffer di scorrimento. Puoi aumentarlo per essere illimitato, ma ciò richiederà memoria. Ma non bloccherà.
San
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.