【问题标题】:Processes started with systemd are logging to /var/log/syslog and /var/log/daemon.log使用 systemd 启动的进程正在记录到 /var/log/syslog 和 /var/log/daemon.log
【发布时间】:2015-08-25 18:42:58
【问题描述】:

我在 Beaglebone Black 上运行了几个 python 脚本,它们都是由 systemd 在 init 时启动的。昨天我注意到我的 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 作为“之后”目标,只是因为我遵循的示例有它。但是我已经删除了它,它似乎并没有解决问题。

非常感谢您对此问题的任何帮助或见解。

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

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

添加 StandardOutput=null 并查看是否可以解决问题。看起来很有希望。

编辑 2:确实如此。

【问题讨论】:

    标签: linux logging systemd


    【解决方案1】:

    SystemD 永远不会单独在 /var/log 中记录文件。

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

    简单地禁用您的系统日志守护程序将阻止文件写入/var/log。消息仍将写入系统日志,但您可以使用相当灵活的控件来限制这些文件使用的空间。请参阅the journald docs 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      相关资源
      最近更新 更多