screen 状态为Attached 连不上 解决方法

今天在服务器上连接上一个screen窗口,然后就去干其他事了,结果再回来时发现远程断开了,重连服务器后发现screen的状态变成了 Attached 用screen -r xxx 却连不上了。

screen -dmS session_name  新建一个窗口但是不进入窗口
screen -S session_name 新建一个窗口,并进入
screen -wipe  检查所有窗口,并删除无法使用的窗口

这里有几个解决办法:

screen -x session_name 可以恢复之前的窗口

如果上面两个命令都不好使,那么使用以下命令

screen -D -r <session_id>

这样可以注销之前的连然后重新链接,如果这样还不好使,一般是卡住了或没有反应,那就用

screen -D <session_id> 
#多等一会儿,它就会提示你 WriteMessage: Broken pipe

这个时候你再用screen -ls查看的时候

screen窗口的状态就会变成Detached,就可以正常连接了。

最后如果这个作业窗口不重要,那就删掉重新建一个吧。

#删除一个session
screen -S <session_name> -X quit

或者使用 screen --help查看更多命令。

$ screen -help

Use: screen [-opts] [cmd [args]]
 or: screen -r [host.tty]

Options:
-4            Use IPv4.
-6            Use IPv6.
-a            Force all capabilities into each window's termcap.
-A -[r|R]     Adapt all windows to the new display width & height.
-c file       Read configuration file instead of '.screenrc'.
-d (-r)       Detach the elsewhere running screen (and reattach here).
-dmS name     Start as daemon: Screen session in detached mode.
-D (-r)       Detach and logout remote (and reattach here).
-D -RR        Do whatever is needed to get a screen session.
-e xy         Change command characters.
-f            Flow control on, -fn = off, -fa = auto.
-h lines      Set the size of the scrollback history buffer.
-i            Interrupt output sooner when flow control is on.
-l            Login mode on (update /var/run/utmp), -ln = off.
-list         or -ls. Do nothing, just list our SockDir.
-L            Turn on output logging.
-m            ignore $STY variable, do create a new screen session.
-O            Choose optimal output rather than exact vt100 emulation.
-p window     Preselect the named window if it exists.
-q            Quiet startup. Exits with non-zero return code if unsuccessful.
-r            Reattach to a detached screen process.
-R            Reattach if possible, otherwise start a new session.
-s shell      Shell to execute rather than $SHELL.
-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
-t title      Set title. (window's name).
-T term       Use term as $TERM for windows, rather than "screen".
-U            Tell screen to use UTF-8 encoding.
-v            Print "Screen version 4.00.03 (FAU) 23-Oct-06".
-wipe         Do nothing, just clean up SockDir.
-x            Attach to a not detached screen. (Multi display mode).
-X            Execute <cmd> as a screen command in the specified session.


Tags linux

留言(0)

评论