我正在Beaglebone Black上运行几个python脚本,这两个脚本都是由systemd在init上启动的。昨天我注意到我的eMMC闪存已完全装满,原因是我有1.8个日志文件。这些脚本的标准输出(它们会生成大量数据用于调试目的)似乎已记录到/ 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:确实如此。
SystemD /var/log
永远不会自行登录文件。
如果日志消息显示在中/var/log
,则表明您的系统正在运行“ syslog”守护进程,该守护进程正在(a)通过读取systemd日志或(b)应用程序直接使用syslog接收日志消息。
只需禁用syslog守护程序即可防止文件写入/var/log
。消息仍将被写入系统日志,但是您可以使用相当灵活的控件来限制这些文件使用的空间。有关更多信息,请参阅日记文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句