Can't get detached screen to resume
Solution 1
I've seen this when I drop a connection to an active screen then reconnect. Bug #27462 ("Reconnect stalls when original session is lost") describes the problem as I see it. What appears to happen is that screen is trying to notify the tty that holds it that it is about to leave, but since the tty is hung due to a dropped connection it has to wait for the timeout to happen (which is upwards of five minutes in some cases).
To fix it, I do this:
- figure out which tty is holding on to the screen session
ps -ef | grep screen | grep pty
- find the login bash that is associated with that tty
ps -ef | grep bash | grep $PTY
- kill that bash
kill -KILL $PID
This causes screen to complete its disconnect correctly, and lets you reconnect normally.
See here for an example script automating this somewhat.
Solution 2
If you're smart like me, you were trying to resume a screen session started as root
with the regular user account. Found this out with ls /var/run/screen
showing me a directory for root
Solution 3
I can't say I've ever had a problem with screen not coming back, no matter what type of connection I'm on. My usual method:
ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)
ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName
Related videos on Youtube
Comments
-
user3048402 over 1 year
I use putty and have an unreliable wireless connection, so I use screen to keep my work going. Often I'll get disconnected, and then I can't reattach my screen. I'll run
screen -D -RR
and it will just sit there indefinitely. I've tried ctrl+z to get my console back, followed byps aux | grep screen
and thenkill -9
for all results, and thenscreen -D -RR
again but I get the same results. I try any combination of d's and r's you care to mention, but still it just sits there. My screen is there, it just won't do anything, least of all resume.Anybody have any tips or tricks or ideas for how to get my screen session to resume?
-
user3048402 over 14 yearsFor example screen -list returns 32322.mySession (Attached). Then I screen -d mySession. Then screen -list still returns 32322.mySession (Attached), and screen -r mySession returns There is no screen to be resumed matching daveSession.
-
user3048402 over 14 yearsThe workaround didn't make much sense to me. My output of ps -ef |grep screen doesn't look like the example at all.
-
user3048402 over 14 yearsps -ef | grep screen | grep tty never prints anything because ps -ef | grep screen never returns anything with the string tty.
-
user3048402 over 14 yearsActually the example script seems to do the trick. Thanks!
-
David Mackintosh over 14 yearsYeah, I meant 'pty', not 'tty'.
-
Jason Antman over 14 yearsdid you try just "screen -d"?
-
Philip about 12 yearsI think that's the exact opposite of what he's trying to do.
-
Gurn64 over 3 yearsHad the exact same issue. Glad i'm not the only 'smart' one!