Ric*_*ard 224 gnu-screen
我正在远程 Debian Jessie 服务器上工作。我启动了一个屏幕会话,开始运行一个脚本,然后由于网络超时而断开连接。
现在我再次登录并想恢复会话。
这是我在列出屏幕时看到的:
$ screen -ls
There are screens on:
30608.pts-8.myserver (11/03/2015 08:47:58 AM) (Attached)
21168.pts-0.myserver (11/03/2015 05:29:24 AM) (Attached)
7006.pts-4.myserver (10/23/2015 09:05:45 AM) (Detached)
18228.pts-4.myserver (10/21/2015 07:50:49 AM) (Detached)
17849.pts-0.myserver (10/21/2015 07:43:53 AM) (Detached)
5 Sockets in /var/run/screen/S-me.
Run Code Online (Sandbox Code Playgroud)
我似乎同时被两个屏幕所吸引。
现在我想恢复我之前运行的会话,以查看我的脚本的结果:
$ screen -r 30608.pts-8.myserver
There is a screen on:
30608.pts-8.OpenPrescribing (11/03/2015 08:47:58 AM) (Attached)
There is no screen to be resumed matching 30608.pts-8.myserver.
Run Code Online (Sandbox Code Playgroud)
为什么我不能重新连接?
我在另一个屏幕上有同样的问题:
$ screen -r 21168.pts-0.myserver
There is a screen on:
21168.pts-0.OpenPrescribing (11/03/2015 05:29:24 AM) (Attached)
There is no screen to be resumed matching 21168.pts-0.myserver.
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 368
会话仍然附加在另一个终端上。服务器尚未检测到该连接上的网络中断:它仅在尝试发送数据包并在超时后返回错误或无响应时检测到中断,但这尚未发生。您遇到的常见情况是客户端检测到中断,因为它尝试发送一些输入并失败,但服务器只是坐在那里等待输入。最终服务器会发送一个keepalive包并检测到连接已死。
同时,使用-d选项将屏幕会话与它所在的终端分离。
screen -r -d 30608
Run Code Online (Sandbox Code Playgroud)
screen -rd 几乎是附加到现有屏幕会话的标准方式。
Tho*_*key 15
根据手册,您只能“恢复”分离的屏幕:
' [match] ' ' [match] ' 不启动屏幕,而是打印会话标识字符串列表(通常格式为 pid.tty.host;请参阅会话名称)。标记为“分离”的会话可以使用 恢复。那些标记为“附加”的正在运行并且有一个控制终端。如果会话在多用户模式下运行,它会被标记为“多”。标记为“无法访问”的会话要么存在于不同的主机上,要么已死亡。当一个无法访问的会话的名称与本地主机的名称或指定的参数(如果有)匹配时,它被认为是死的。见
-ls-listscreen -r-r用于描述如何构建匹配的标志。应彻底检查并删除标记为“死”的会话。如果您不确定,请咨询您的系统管理员。使用“-wipe”选项删除会话。
你想要的是这个选项:
'
-x'
附加到已附加到别处的会话(多显示模式)。屏幕拒绝从自身内部附着。但是在级联多个屏幕时,没有检测到循环;小心。
小智 8
我附有选项的屏幕 -rD
从手册:
-D -r
Reattach a session. If necessary detach and logout remotely first.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
261778 次 |
| 最近记录: |