Greetings,
I've been running screen for a while now - I use it day to day
operations just fine, and occasionally when I'm in a pinch I use it for
a serial terminal.
The way you scroll up in screen ( or atleast the way that I've found
that seems to be standard ) is to use ctrl + a then [. This puts you
into "copy mode", and there are some nice features in there. My issue
was thus:
I have a production service that prints some debug to stdout. I could
make it print to stderr, but it really doesn't matter in this case. I
want to have some hope of if something goes wrong figuring out what did.
Log files aren't really an option so I ran it in screen. Yes yes I could
have made it network log to somewhere else, but again, not really an
viable option in this case. Works great as the program dies and the
output stops, leaving the last debug messages in the buffer of screen.
Enter problem: Disconnecting from the screen ( ctrl+a ) d, leaving it in
copy mode. Turns out that screen _blocks_stdout_ while it is in copy
mode. Depending on what kind of program you're running in screen this
could be bad.
In my case it was pretty annoying because _monitoring_didn't_catch_it_
as the program was still responding to tcp connections. It was block
writing to stdout. Because the blocking stdout command was in its own
function and I am using an async javascript program without waiting for
a callback, other parts of the system still worked.
Thought I'd share. Make sure you hit esc+esc on production screen
stuff.. it blocks stdout!
Rob