屏幕:尽管丢失连接,仍保持您的进程运行
版本1.0
作者:Falko Timme
我想你都知道这一点:你使用SSH连接到你的服务器,并且在编译一些软件(例如一个新的内核)或做一些其他需要很多时间的任务的时候,突然你的连接由于某种原因而下降,你失去了你的劳动。 这可能非常烦人,但幸运的是有一个小屏幕
实用程序,可以让您重新连接到上一个会话,以便您可以完成任务。 这个简短的教程显示如何使用屏幕
为了这个目的。
1安装屏幕
屏幕
的安装非常简单。 在Debian和Ubuntu上,你只是运行
apt-get install screen
我想,对于Fedora,CentOS,SuSE和Mandriva,还有可以使用yum
/ yast
/ urpmi
/ ...安装的屏幕
包
2使用屏幕
使用屏幕,
您可以在当前的SSH终端中创建一个或多个会话。 赶紧跑
screen
开始吧 这将在您当前的SSH终端中创建一个屏幕
会话或窗口(尽管您没有看到它)
按空格
键或返回
到达命令提示符:
看起来像你正常的SSH终端,不是吗?
现在我将描述您需要控制屏幕
的最重要的屏幕
命令。 这些命令以CTRL a
开头,以区别于正常的shell命令。
-
Ctrl ac
- 创建一个新的屏幕
会话,以便您可以一次使用多个屏幕
会话。 -
Ctrl
- 切换到n ext屏幕
会话(如果您使用多个)。 -
Ctrl ap
- 切换到屏幕
会话(如果您使用多个屏幕
会话)。 -
Ctrl ad
- 分离屏幕
会话(不会杀死其中的进程 - 它们会继续)。
要关闭所有任务完成的屏幕会话,您可以键入
exit
现在我们来玩一下吧。 在我们的屏幕
窗口中,我们运行命令
top
这应该是这样的:
现在让我们通过键入创建另一个屏幕
会话
Ctrl a c
一个新的空白屏幕
会话打开,我们运行
tail -f /var/log/mail.log
持续查看我们的邮件日志:
现在您可以通过运行浏览两个屏幕
会话
Ctrl a n
要么
Ctrl a p
要分离屏幕
会话并返回到正常的SSH终端,请键入
Ctrl a d
回到你的普通SSH终端,你可以运行
screen -ls
获取当前屏幕
会话的列表:
There are screens on:
2477.pts-0.server1 (Detached)
2522.pts-0.server1 (Detached)
2 Sockets in /var/run/screen/S-root.
要重新连接到其中一个会话,请运行
screen -r 2477.pts-0.server1
其中2477.pts-0.server1
是从屏幕-ls
输出的其中一个会话的名称。
离开并完成屏幕
会话,完成其中的所有当前任务( 顶部
可以通过键入q
完成, tail -f /var/log/mail.log
可以通过键入CTRL c
)完成,然后键入
exit
然后,如果没有更多的屏幕
会话打开,您将回到另一个屏幕
会话(如果您使用多个屏幕
会话)或正常的SSH终端。
如果您想了解有关屏幕的
更多信息,请运行
man screen
3我的连接掉线 - 我该怎么办?
现在让我们假设你在屏幕
会话中编译一个内核,这通常需要很长时间,突然你的连接掉下来。 感谢屏幕
你的工作不会丢失。 一旦您的连接备份,再次使用SSH登录到您的系统并运行
screen -ls
如第2章所示。从结果中选择一个会话(例如2477.pts-0.server1
)并重新连接:
screen -r 2477.pts-0.server1
如果您选择了正确的会话,您应该会发现内核仍然在编译(如果尚未完成),以便您可以继续工作。