在 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=tty1
GRUB_CMDLINE_LINUX
(我还建议添加noplymouth
以抑制plymouth
其无用的启动画面)。
#> sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="console=tty1 noplymouth"
这将强制打印内核日志tty1
而不是tty7
并避免tty
在登录提示之前进行切换。
然后只需进入/etc/init
并编辑一个或多个tty1.conf
、tty2.conf
、tty3.conf
、tty4.conf
或。我编辑了它们全部添加tty5.conf
tty6.conf
console.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
而无需清除它。