注销后我的屏幕进程会继续吗?

tje*_*spe 4 gnu-screen

我以 root 用户身份打开了一个屏幕,sudo su -然后键入screen。然后我运行命令来启动我的 Minecraft 服务器。

Ctrl-A之后,我按和分离屏幕d。在我注销计算机后,该进程(我的服务器)是否会继续运行(显然没有将其关闭)?

UTF*_*F-8 5

Screen 正是为了做到这一点。您可以通过执行以下操作提前测试:

$ sudo su -- # Note that you should use 2 dashes, here, if you use any (you don't have to, `sudo su` would do the same thing).
# screen
# # Press [enter].
# sleep 100 && echo foo
# # Press [ctrl]+[A], then [D].
# # Press [ctrl]+[D].
$ sudo su
# screen -r
# # You'll be shown the line you entered before, again. After some time (100 seconds after you entered the 4th line), "foo" will be printed.
Run Code Online (Sandbox Code Playgroud)

所有以 开头的行都$以普通用户身份执行。以 root开头的所有行#均以 root 身份执行。#一行中的后面标记单行注释的开始。

在第一行中,您以 root 身份登录。您可能应该弄清楚是否有必要以 root 身份运行 Minecraft 服务器。

在第二行中,您输入screen

按 Enter 键只是为了让打开时显示的文本屏幕不带参数消失。

在第 4 行中,执行代表您的 Minecraft 服务器的命令。它休眠 100 秒,然后打印“foo”。

crtl+ A,然后按D,可断开与第 5 行屏幕的连接。

ctrl在第 6 行中,通过按+断开与终端会话的连接D。请注意,当您以较低级别的常规用户身份登录时,这会使您的终端保持打开状态。您只需从顶层的终端会话断开连接。如果您以 root 身份注销,并且可以exit帮助您了解您确实正在注销,那么也可以使用它来执行此操作。您也可以以普通用户身份注销。只需再次按ctrl+即可D。如果这是最低级别并且您使用的是 tty,您将再次看到登录屏幕。如果它是最低级别并且您正在使用终端模拟器,则终端窗口将关闭。这绝对没有问题。

在第 7 行,您再次以 root 身份登录。

在第 8 行,奇迹发生了。您screen使用标志进行调用r,该标志取自screen的手册页 (run man screen) 意味着:

重新附加会话,如有必要,请先将其分离。

因为您在 中只有一个会话screen,所以您会返回到正确的会话。

一段时间后,“foo”将打印在屏幕上,这意味着当您连接到屏幕或稍后连接到它时,您将在终端上看到它。您的所有命令及其输出仍然可见。当您不一定登录时就会执行。