如何在登录前删除清除屏幕

Jor*_*ina 10 server boot login

在 ubuntu 服务器上,如何避免在登录屏幕弹出之前清除屏幕?

我正在尝试阅读其中一项服务的错误消息,但出现了令人讨厌的清晰屏幕,并且无法使用 shift-pageUp 向上滚动。

小智 8

对于 systemd 设置TTYVTDisallocate为 no。

为此,请运行systemctl edit getty@tty1 并输入以下代码

[Service]
TTYVTDisallocate=no
Run Code Online (Sandbox Code Playgroud)

  • 16.4 服务器,为我工作。我用过这个[更详细的描述](http://mywiki.wooledge.org/SystemdNoClear) (2认同)

Eli*_*gan 4

查看启动过程中出现的最后一个屏幕消息

当 Ubuntu Server 启动时,您看到的消息通常会写入 tty7(第七个虚拟控制台)。启动完成后,您将切换到 tty1,系统会提示您登录。因此,引导消息实际上并没有被清除;您只需切换到与包含它们的控制台不同的控制台即可。

要再次查看它们,您可以按 Alt+F7 切换到 tty7。您可以使用 Alt+F1 切换回 tty1(使用 Alt+F2 切换回第二个,依此类推)。这不适用于(也不应该)适用于大多数 Ubuntu Server 系统,但是当 GUI 运行时,必须使用 Ctrl+Alt+F1 切换到 tty1(对于 tty2 则必须使用 Ctrl+Alt+F2,依此类推)。

防止用户注销后屏幕被清除,以便其会话中的文本在后续会话中可见

在您的主目录中有一个名为 .bash_logout 的文件,其中包含以下内容:

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
Run Code Online (Sandbox Code Playgroud)

这就是导致注销时屏​​幕被清除的原因。为了阻止这种情况发生,请注释掉所有这些行,所以它看起来像:

#if [ "$SHLVL" = 1 ]; then
#    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
#fi
Run Code Online (Sandbox Code Playgroud)


Avi*_*vio 3

经过几个小时的谷歌搜索,我在这个线程这个问题中找到了解决方案。

首先,添加console=tty1到您的GRUB_CMDLINE_LINUX(我还建议添加noplymouth到抑制plymouth及其无用的闪屏)。

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"
Run Code Online (Sandbox Code Playgroud)

这会强制打印内核日志,tty1而不是在登录提示符之前打印tty7并避免切换。tty

然后只需进入/etc/init并编辑tty1.conftty2.conftty3.conftty4.conftty5.conftty6.conf或中的一个或多个console.conf即可。我编辑了它们,--nocleargetty命令添加了选项。例如,编辑tty1.conf

#> sudo vi /etc/init/tty1.conf
Run Code Online (Sandbox Code Playgroud)

你必须更换:

respawn
exec /sbin/getty -8 38400 tty1
Run Code Online (Sandbox Code Playgroud)

和:

respawn
exec /sbin/getty -8 38400 --noclear tty1
Run Code Online (Sandbox Code Playgroud)

就这样,运行sudo update-grub,现在您的系统应该以单一方式启动,tty而无需清除它。