当使用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的进程即可。