我有一个 Ubuntu 服务器版本正在运行,我可以通过 SSH 连接到它来执行各种任务。我想要的是能够通过 SSH 进入我的服务器启动服务器应用程序,然后切换到另一个“虚拟”会话(在同一个 SSH 实例中)并针对该服务运行客户端调用。当我启动服务时,它是一个阻塞调用,所以我不能在不启动另一个 SSH 会话的情况下运行客户端调用。
我希望可能有一种更灵活的方式,就像用户界面对虚拟桌面所做的那样。
GNU Screen是您一直在寻找的答案——但它很像 Vi。您已经学习了很多命令来设置成功的 Screen 环境。这里有一些东西可以让你开始。首先,您需要将此.screenrc http://paste.ubuntu.com/473764/保存在用户主文件夹中的远程服务器上。远程机器上的下一个安装屏幕 ( sudo apt-get install screen) 接下来您需要启动它,这里是一些用于“启动屏幕”的命令:
screen- 这很简单。它启动一个新的屏幕会话
screen -ls- 列出所有活动的屏幕会话。是的,您可以在多个屏幕内拥有多个终端。如此甜蜜。
样本
screen -ls
There is a screen on:
16467.pts-0.ubuntu (08/05/2010 07:47:53 PM) (Detached)
1 Socket in /var/run/screen/S-marco.
Run Code Online (Sandbox Code Playgroud)
screen -x <pid> - 这将恢复分离屏幕会话,IE: screen -x 16467
一旦您进入 Screen(并且您已经使用了我的示例.screenrc文件),您将在底部看到以下内容:
(LOAD) 0$* bash
这是服务器负载和所有打开的“终端选项卡”的列表。目前只有一个窗口。键入内容然后按此组合键:Ctrl + A释放,然后按c。Ctrl + A是转义序列。所有命令都以此组合开始。c是创建新标签。您会注意到页脚(LOAD) 0-$ bash 1$* bash显示有另一个选项卡打开,活动选项卡的编号为 1。每个屏幕会话最多可以打开 60 个选项卡。
如果你想退出屏幕但保持它运行,Ctrl + A那么d这将分离你的会话。最后,您可以使用Ctrl + Athen关闭选项卡,k这将杀死该选项卡(如果它已锁定),但通常您可以exit像在终端中一样输入,然后它会关闭该选项卡。
最后要列出所有打开的窗口,您可以输入Ctrl + Athen "。
Screen 有很多可用的选项,您应该查看 man 文件以获取更多信息。有一些缺点。您不能在 Screen 中使用滚动条,您必须使用缓冲区控件来回滚,但是以上内容足以让您开始了解这是否是一个可行的选择。这是一件很棒的事情,也是我作为系统管理员经常处理的事情 - 网络连接。如果您的网络中断,您的操作不会丢失!由于屏幕在服务器上运行。您只需通过SSH重新登录,然后screen -ls和screen -x回您的会话。
| 归档时间: |
|
| 查看次数: |
35964 次 |
| 最近记录: |