如何在 systemd 下简单地更改为文本模式运行级别?

sha*_*ant 6 runlevel systemd

我已经安装了 systemd 的 ubuntu 16.04。我需要从 nvidia 安装一个 cuda 工具包,但我只能从运行级别 3 安装它。

现在我在这里找到了一些答案,但没有一个有效。例如:

  • echo "manual" | dd of=/etc/init/lightdm.override

    有人告诉我这让我在开始时选择运行级别

  • systemctl isolate runlevel3.target

    在这里,我被告知它无需启动即可更改为运行级别 3,但它只是使显示变黑。

Byt*_*der 5

如果您只需要切换到文本模式而没有运行 X 服务器之类的 GUI 内容,您可以使用systemctl让您的机器进入所谓的multi-user.target

sudo systemctl start multi-user.target
Run Code Online (Sandbox Code Playgroud)

graphical.target可以通过重新启动或以与上述相同的方式手动切换回来来恢复它并返回到桌面 ( ):

sudo systemctl start graphical.target
Run Code Online (Sandbox Code Playgroud)

如果您真的需要将真正的运行级别更改为 3,则可以使用该init命令来完成,正如@terdon他的评论中指出的那样:

sudo init 3
Run Code Online (Sandbox Code Playgroud)

您可以使用该runlevel命令验证您当前的运行级别。它将输出两个字母:左边一个是你之前的运行级别,而右边一个代表你当前的运行级别。

通过再次将运行级别设置为 5 返回桌面:

sudo init 5
Run Code Online (Sandbox Code Playgroud)

两种方法的重要一般说明:

  • 切换到multi-user.target运行级别 3 或运行级别 3 都会终止 X 服务器并终止所有 GUI 应用程序和您的桌面环境。确保在开始之前关闭所有合理的应用程序并保存您的工作,否则它们的状态将丢失!

  • 既不systemctrl start ???.target也不init ?做切换您的活动TTY。这意味着,如果您从桌面上的终端仿真器(通常在 TTY7 上)运行这些命令,之后您将处于黑屏状态(可选地带有一些调试输出)。

    这仅仅是因为 TTY 8-12 没有连接到文本控制台,而是为视频控制台保留以显示 GUI。只有 TTY 1-7 是文本控制台。

    因此,要multi-user.target在运行级别 3中或在运行级别 3 上运行,您必须切换到文本控制台 TTY,例如按Ctrl+ Alt+F1表示 TTY1。分别graphical.targetCtrl+ Alt+返回或运行级别 5后,您将返回桌面 (TTY7) F7

    当您进入这样的文本控制台时,请注意您必须首先按照要求输入用户名和密码再次登录。