我想阻止内核和 systemd 将启动(服务)状态消息记录到 tty。
Debian Stretch/8 VM 的输出示例:
这系统手册页谈论一些可能控制日志记录的参数:
- systemd 内核参数
systemd.show_status
- 内核内核参数
quiet
,也由系统检查
从手册页:
systemd.show_status=
采用布尔参数或常量 auto。如果是,则 systemd 管理器(PID 1)会在启动期间在控制台上显示简洁的服务状态更新。 auto 的行为与 false 类似,直到服务失败或启动出现明显延迟。默认为yes,除非quiet作为内核命令行选项传递,在这种情况下它默认为auto。
(强调我的。)
在我看来,与我所强调的相反的正是我想要的 - 尽管它不起作用。
我尝试了内核参数没有成功
# the man page was unclear whether false, 0 or no is correct
systemd.show_status=false
systemd.show_status=0
systemd.show_status=no
# the man page says the above config defaults to the value of the kernel parameter "quiet"
quiet
# log "less"
systemd.log_level=err
# explicitly say where to log to
systemd.log_target=journal-or-kmsg
# explicitly say where to log/output to even though the default should be "journal"
systemd.default_standard_output=journal
它们没有效果 - 我仍然看到状态消息。
(我在绝望中添加了最后三个选项,并排除其他错误源。)
命令行是
$ cat /proc/cmdline
... quiet systemd.show_status=false systemd.log_level=err systemd.log_target=journal-or-kmsg systemd.default_standard_output=journal
Systemd 版本是 232-7,操作系统是 2016 年末的 Raspbian(基于 Debian 7),带有一些软件包,包括部分升级到 Debian Stretch/8 的 sytemd:
Linux raspberrypi 4.4.38-v7+ #938 SMP Thu Dec 15 15:22:21 GMT 2016 armv7l GNU/Linux
然而,在具有相同 systemd 版本和明显相同配置且只有一个quiet
选项的新 Debian Stretch/8 上,我根本看不到日志记录。在那个新的系统上指定systemd.show_status=yes
完全导致我想在另一个系统上摆脱的行为。
- 一开始提到的内核选项是否应该按预期自行工作?
- 如何识别控制台记录的内容?