Debian 默认使用quiet
内核命令行(至少是从我一直使用的实时媒体安装的。这可能是一个坏主意)。
quiet
systemd通过在启动每个服务时不打印标准消息来响应。
那么,为什么我在关闭时会看到 systemd 状态消息呢?
这是在 Debian Stretch 上。
答案1
man systemd
systemd.show_status
采用布尔参数或常量
auto
。也可以不带参数指定,与正布尔值具有相同的效果。如果启用,systemd 管理器 (PID 1) 将在启动期间在控制台上显示简洁的服务状态更新。auto
行为类似于 false,直到某个单元发生故障或启动出现明显延迟。默认为启用,除非安静作为内核命令行选项传递,在这种情况下它默认为auto
.
当某个单元发生故障时,systemd 会启用状态消息,尽管有该quiet
选项。
如果该quiet
选项已通过但被此类条件覆盖,则当系统完成启动时,状态消息将重新禁用(即使仅进入紧急模式)。
目前,systemd 仅在初始启动期间和关闭期间打印状态消息。然而,quiet
即使单元故障发生在启动关闭之前,单元故障也可能导致该选项在关闭期间被覆盖。
被覆盖的第二种情况quiet
是当一个单元需要一段时间时,systemd 会打印一个动画,显示该单元在超时之前允许多长时间。
通过在源代码中查找manager_flip_auto_status(m, true)
.
- https://github.com/systemd/systemd/blob/41dfa61d35c51a584437481d20541d5c3ccfa93d/src/core/manager.c#L200
- https://github.com/systemd/systemd/blob/41dfa61d35c51a584437481d20541d5c3ccfa93d/src/core/job.c#L734
有不是manager_flip_auto_status(m, false)
系统关闭时的调用。至少在 systemd v235-135-g41dfa61d3 中没有。
例如,由于 systemd-backlight 尝试在华硕台式机上设置笔记本电脑背光但失败,我目前在启动时看到状态消息。 (可能是平台驱动程序有些奇怪;系统完成启动时没有设备/sys/class/backlight
,但似乎 systemd 在启动过程中找到了一个设备)。
答案2
因为systemd
正在按记录工作。搜索man systemd
“quiet”显示内核选项仅影响启动,而不影响关闭。