服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

分开当前会话,并附加到另一个会话,完成一个脚本,我可以吗?

在阅读了GNU屏幕的模糊官方文档( http://www.gnu.org/software/screen/manual/screen.html )之后,在这个网站上询问了一些问题。 我仍然无法弄清楚如何用shell脚本完成这样的任务。 这个任务花费一些词来描述。 假设我使用PuTTY远程login到我的Linux服务器。 【步骤1】启动2个telnet连接。 从putty窗口1(PTWIN1),telnet到Linux Bash shell,执行screen -RR启动屏幕会话,并获得会话名称21385.pts-4.linux-ic37 。 从腻子窗口2(PTWIN2)开始,执行与PTWIN1中相同的操作,但是这次我得到会话名称22041.pts-9.linux-ic37 。 现在,我们有两个屏幕会话同时运行。 我们可以检查这个: $ screen -ls There are screens on: 22041.pts-9.linux-ic37 (Attached) 21385.pts-4.linux-ic37 (Attached) 2 Sockets in /var/run/uscreens/S-chj2. 【第2步】 假设由于某种原因,PTWIN1的TCP连接exception丢失(但是服务器不知道),并且会话21385上的紧急工作正在等待,我想快速重新获得对它的控制权。 幸运的是,我们知道21385会话还在,因此,我想把PTWIN2附加到会话21385.因为我讨厌记得深奥的屏幕选项,所以我决定写一个名为sttach的脚本。 我希望 sttach 21385.pts-4.linux-ic37 可以让我附加到会话21385(对于PTWIN2)。 现在,让我们说sttach运作良好,我在PTWIN2上控制了21385。 【步骤3】 几分钟后。 我想回到工作22041会话。在这里,请允许我让PTWIN2保持与会话21385关联。我想要做的是启动另一个腻子窗口(PTWIN3),远程login到服务器,并执行 sttach 22041.pts-9.linux-ic37 希望能在PTWIN3上恢复会话22041。 你可以看到sttach的好处:只要我知道目标会话名称,我可以调用它让我的PuTTY窗口切换到该会话,无论目标会话是“(Attached)”还是“(Detached)”,而不pipe运行上下文是否在屏幕会话内。 现在的问题是:如何写(Bash)脚本sttach? 我的意思是,用适当的选项在屏幕上运行屏幕来完成目标。 等待你的亲切回答。 谢谢。 我之前有关GNU屏幕的问题: GNU屏幕,如何以编程方式获取当前会话名称 创build后可以更改GNU屏幕会话名称吗? 我怎么知道我正在运行一个Linux的“屏幕”或不? 我的环境:openSUSE […]