journalctl -b | grep Supervising | wc -l
2819
发行版是 Fedora 35,香草,由 PipeWire 运行。
我很确定所有现代 Linux 发行版都会受到影响,但人们并不在意。
这里没有rsyslog
,journald
不支持过滤。
这越来越荒谬了。我可以肯定地修补它,但问题是如何在不应用补丁和重建的情况下完成它。这个东西,/usr/libexec/rtkit-daemon
,甚至没有手册页,也没有--help
提供任何线索。
还有一个相关问题也从未得到解答:rtkit: list threads it is "supervising"?
我只能考虑rtkit-daemon
通过一些简单地禁用与/dev/log
/system 日志记录相关的所有功能的包装器来运行。有没有人见过这样的事情?
我已经提交了一份错误报告以防万一。
正如 Artem 所写的,systemd 期刊的过滤能力非常有限。因此,限制服务或桌面应用程序冗长的唯一解决方案是在日志管道中更早地组织过滤,然后再进行任何类型的进一步处理。
为了实现这一点 systemd 服务:
A/找到与您要调整的服务关联的目录。通常基于在
(/usr)/lib/systemd/system
包安装时分发的服务,例如 rtkit-daemon。在这种特殊情况下:rtkit-daemon.service.d
B/在这个目录中,(或者在系统范围的配置子目录中更好,
/etc/systemd/system/rtkit-daemon.service.d
因为它不会被进一步的包升级静默删除)编辑或创建一个log.conf
文件以插入以下语句:X 代表所需的数字日志级别或其相关的字母符号,取自以下列表:
对于选择的给定级别,不会输出所有更高级别的日志。请注意,如果在任何 systemd 服务 .conf 文件中未指定日志级别,则守护程序的日志级别默认为 7,换句话说,允许最高级别的详细信息。
关于标题中措辞的特定需求,LogLevelMax= 5(通知)就足够了(评论中报告了 6)。
C/保存并退出编辑器,然后运行以下两个命令:
注意事项:由于“新式守护进程”(原文如此)......将在它们自己的会话中执行,标准输入连接到 /dev/null,标准输出/错误连接到 systemd-journald.service(8) 日志记录服务日志记录可以可以通过任何简单的 (f)print(f) 来实现。然后可以通过简单地将其 stdout 和 stderr 重定向到 /dev/null 来完全使守护进程静音。
虽然我很容易想象这是不推荐的(因为明智的做法是让至少严重错误进入系统日志),但可以通过以下语句实现此重定向:
学分:根据systemd.exec 文档回答