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

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

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

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

答案1

对于 systemd 设置TTYVTDisallocate为否。

为了实现这一点,运行systemctl edit getty@tty1 并输入以下代码

[Service]
TTYVTDisallocate=no

答案2

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

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

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

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

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

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

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

#if [ "$SHLVL" = 1 ]; then
#    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
#fi

答案3

经过几个小时的谷歌搜索,我找到了解决方案此主题这个问题

首先,添加console=tty1GRUB_CMDLINE_LINUX(我还建议添加noplymouth以抑制plymouth其无用的启动画面)。

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

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

然后只需进入/etc/init并编辑一个或多个tty1.conftty2.conftty3.conftty4.conf或。我编辑了它们全部添加tty5.conftty6.confconsole.conf--noclear选项getty。例如,编辑tty1.conf

#> sudo vi /etc/init/tty1.conf

你必须更换:

respawn
exec /sbin/getty -8 38400 tty1

和:

respawn
exec /sbin/getty -8 38400 --noclear tty1

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

相关内容