以 systemd 启动的进程正在记录到 /var/log/syslog 和 /var/log/daemon.log

问题描述 投票:0回答:2

我在 Beaglebone Black 上运行了几个 python 脚本,它们都是在 init 时由 systemd 启动的。我昨天注意到我的 eMMC 闪存完全满了,原因是我有 1.8 GB 的日志文件。这些脚本的标准输出(它们生成大量用于调试目的的数据)似乎被记录到 /var/log/syslog 和 /var/log/daemon.log。此外,/var/log/messages 有大量关于“速率限制”的条目。

现在,我假设我可以通过禁用这些脚本的标准输出来解决这个问题。但是,我更愿意保留该功能并以某种方式告诉 systemd 不要记录该数据。但是,我一直无法找到这方面的信息。

这是我当前的 .service 文件的示例:

[Unit]
Description=Description of my process
After=network.target
[Service]
Type=simple
ExecStart=/opt/myprocess
[Install]
WantedBy=multi-user.target

我应该注意,我最初将 syslog.target 作为“After”目标,只是因为我所关注的示例有它。但是我已经删除了它,它似乎并没有解决问题。

任何对此问题的帮助或见解将不胜感激。

编辑:我可能在这里找到了答案:

http://www.kibinlabs.com/systemd-logging-tricks/

添加 StandardOutput=null 并查看是否修复了它。看起来很有前途。

编辑 2:确实如此。

linux logging systemd
2个回答
4
投票

SystemD 本身不会在

/var/log
中记录文件。

如果日志消息显示在

/var/log
中,这表明您的系统正在运行“syslog”守护进程,它正在接收日志消息(a)通过读取 systemd 日志,或(b)通过直接使用 syslog 的应用程序。

简单地禁用您的系统日志守护进程将阻止文件被写入

/var/log
。消息仍将写入系统日志,但您可以使用相当灵活的控件来限制这些文件使用的空间。有关更多信息,请参阅journald docs


0
投票

ForwardToSyslog=no
中设置
/etc/systemd/journald.conf
(默认是yes)并重启
systemd-journald

© www.soinside.com 2019 - 2024. All rights reserved.