How Do I Force Detach Screen from Another Ssh Session?
I Had Screen Running Inside an Ssh Session. Terminal Froze. After Restarting Terminal, That Screen Session Still Thinks It's Attached. Maybe It Is. Perhaps I...
I had Screen running inside an SSH session. Terminal froze. After restarting Terminal, that Screen session still thinks it's attached. Maybe it is. Perhaps I don't really know what that means.
I'd like to attach to that Screen session from a fresh SSH login. I do not want to kill that Screen session as important things are happening over there. : )
The options I think I have ( none of which I know how to solve ):
- How do I detach that Screen session?
- How do I kill the SSH session that that Screen session is attached to?
3 Answers
As Jose answered, screen -d -r should do the trick. This is a combination of two commands, as taken from the man page.
screen -d detaches the already-running screen session, and screen -r reattaches the existing session. By running screen -d -r, you force screen to detach it and then resume the session.
If you use the capital -D -RR, I quote the man page because it's too good to pass up.
Attach here and now. Whatever that means, just do it.
Note: It is always a good idea to check the status of your sessions by means of "screen -list".
try with screen -d -r or screen -D -RR
Short answer
- Reattach without ejecting others:
screen -x - Get list of displays:
^A*, select the one to disconnect, pressd
Explained answer
Background: When I was looking for the solution with same problem description, I have always landed on this answer. I would like to provide more sensible solution. (For example: the other attached screen has a different size and a I cannot force resize it in my terminal.)
Note:
PREFIXis usually^A=ctrl+a
Note: the display may also be called:
- "user front-end" (in
atcommand manual in screen)- "client" (tmux vocabulary where this functionality is
detach-client)- "terminal" (as we call the window in our user interface) /depending on
1. Reattach a session: screen -x
-x attach to a not detached screen session without detaching it
2. List displays of this session: PREFIX *
It is the default key binding for: PREFIX :displays.
Performing it within the screen, identify the other display we want to disconnect (e.g. smaller size). (Your current display is displayed in brighter color/bold when not selected).
term-type size user interface window Perms
---------- ------- ---------- ----------------- ---------- -----
screen 240x60 you@/dev/pts/2 nb 0(zsh) rwx
screen 78x40 you@/dev/pts/0 nb 0(zsh) rwx
Using arrows ↑ ↓, select the targeted display, press d
If nothing happens, you tried to detach your own display and screen will not detach it. If it was another one, within a second or two, the entry will disappear.
Press ENTER to quit the listing.
Optionally: in order to make the content fit your screen, reflow: PREFIX F (uppercase F)
Excerpt from man page of screen:
displays
Shows a tabular listing of all currently connected user front-ends (displays). This is most useful for multiuser sessions. The following keys can be used in displays list:
mouseclickMove to the selected line. Available when "mousetrack" is set to on.spaceRefresh the listdDetach that displayDPower detach that displayC-g,enter, orescapeExit the list