如何在登录前删除清除屏幕
在ubuntu服务器上,如何在登录屏幕弹出之前避免清除屏幕?
我正在尝试在其中一个服务上读取错误消息,我得到了这个令人讨厌的清晰屏幕,我无法使用shift-pageUp向上滚动。
对于systemd,将TTYVTDisallocate
设置为no。
要实现这一点,请运行systemctl edit getty@tty1
并输入以下代码
[Service] TTYVTDisallocate=no
查看引导期间出现的消息的最后一个屏幕
当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
经过数小时的谷歌搜索,我在这个post和这个问题中找到了解决方案。
首先,将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
启动而不清除它。