解决screen状态为Attached连上不的问题

screen

screen是linux下的一种多重视窗管理程序。在使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session。screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。

当你挂起screen,下次想连上screen的时候,有时候会出现screen session的状态为Attached而怎么连也连不上的情况。下面给出解决方法。

语 法:

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]

参 数:

-A  将所有的视窗都调整为当前终端机的大小。
-d<作业名称>  将指定的screen作业离线。
-h<行数>  指定视窗的缓冲区行数。
-m  即使当前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell>  指定建立新视窗时,所要执行的shell。
-S<作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或–list  显示当前所有的screen作业。
-wipe  检查当前所有的screen作业,并删除已经无法使用的screen作业。

备注

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a ? -> Help,显示简单说明
C-a ” -> 列出终端列表
C-a A -> 重命名终端
C-a c -> 创建新的终端,并切换到该终端
C-a d -> 暂时断开会话,但所有任务都依然执行
C-a K -> 关闭当前终端,并切换到下一个终端(当没终端时 退到原始shell终端)
C-a n -> 切换到下一个终端
C-a p -> 切换到上一个终端
C-a t -> 显示当前时间,和系统的 load
C-a S -> 新建水平线分割终端
C-a Tab -> 水平线切换终端
C-a X -> 关闭当前终端
C-a + -> 扩大当前终端
C-a – -> 缩小当前终端C-a [Space] -> 窗口切换
C-a 0-9 -> 在0-9个终端之间切换
C-a C-a -> 最近使用的2个窗口切换
C-a w -> 列出终端列表
C-a x -> 锁住当前窗口,需用用户密码解锁
C-a z -> 把当前会话放到后台执行,用 shell 的 fg 命令则可回去。

exit:关闭当前终端 (注:和“C-a c”一样

Ctrl-a:
:screen <command> 新建 screen 终端,并运行命令<command>
:resize <height> 改变当前窗口高度为<height>
:quit 退出 screen 关闭所有 screen 终端,结束其中所有任务Ctrl-a <Esc> 进入选择模式
<PageUp> 或 Ctrl-u 光标上移一页
<PageDown> 或 Ctrl-d 光标下移一页
<Left> 或 h 光标左移一格
<Down> 或 j 光标下移一行
<Up> 或 k 光标上移一行
<Right> 或 l 光标右移一格
<Space> 选择开始,选择结束
<Esc> 退出选择模式
Ctrl-a ] 粘贴选择的内容

列出状态为Attached的session id。

  • screen -ls
  • screen -D  -r <session-id>

解释:-D -r 先踢掉前一用户,再登陆。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

退出移动版