为什么我有时会看到 systemd 状态消息,尽管使用“安静”启动?

为什么我有时会看到 systemd 状态消息,尽管使用“安静”启动?

Debian 默认使用quiet内核命令行(至少是从我一直使用的实时媒体安装的。这可能是一个坏主意)。

quietsystemd通过在启动每个服务时不打印标准消息来响应。

那么,为什么我在关闭时会看到 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).

不是manager_flip_auto_status(m, false)系统关闭时的调用。至少在 systemd v235-135-g41dfa61d3 中没有。


例如,由于 systemd-backlight 尝试在华硕台式机上设置笔记本电脑背光但失败,我目前在启动时看到状态消息。 (可能是平台驱动程序有些奇怪;系统完成启动时没有设备/sys/class/backlight,但似乎 systemd 在启动过程中找到了一个设备)。

答案2

因为systemd正在按记录工作。搜索man systemd“quiet”显示内核选项仅影响启动,而不影响关闭。

相关内容