屏幕:保持您的进程运行尽管连接中断

屏幕:尽管丢失连接,仍保持您的进程运行

版本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

如果您选择了正确的会话,您应该会发现内核仍然在编译(如果尚未完成),以便您可以继续工作。

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏