screen无法resume问题解决办法

当使用screen时或许会出现以下情况

# screen -ls 
There is a screen on:
    1894.one    (Attached)
1 Socket in /var/folders/mb/n9zb17sj6yscl42ktmrct4xh0000gq/T/.screen.
# screen -r one
There is a screen on:
    1894.one    (Attached)
There is no screen to be resumed matching one.

明明存在会话,却提示无法恢复,此时ls会话状态为Attached,说明已经附加过了
这种情况可能是因为其它人正使用这个会话,或者之前因为ssh超时等原因导致会话未正常退出,所以无法再次进入

此时可通过以下命令来查询哪些进程占用了会话

# ps auwxf|grep -B2 screen
root     23214  0.0  0.0 109304  4016 ?        Ssl  19:13   0:00  \_ sshd: root@pts/6 
root     23566  0.0  0.0 117400  2272 pts/6    Ss   19:13   0:00      \_ -bash
root     10445  0.0  0.0 125156  1156 pts/6    S+   19:23   0:00          \_ screen -ADR MYSCREEN

可以看到此时pid为23214的sshd进程占用了screen会话,这个是ssh的服务进程,说明之前存在过持有会话,且异常断开的情况,导致会话未正常退出或挂起。
此时kill掉id为23214的进程即可。

你可能感兴趣的:(screen无法resume问题解决办法)