为什么 Linux 上的 Postfix 要求在日志文件路径名前有一个“-”字符?

为什么 Linux 上的 Postfix 要求在日志文件路径名前有一个“-”字符?

我发现了以下内容这里

重要提示:在 Linux 上,您需要在路径名前放置一个“-”字符,例如 -/var/log/maillog,否则 syslogd 进程将比 Postfix 使用更多的系统资源。

但文档没有给出任何原因。那么,为什么需要这个“-”呢?

答案1

仅当您仍在使用 syslogd 或旧版 rsyslog 时才需要这样做

http://www.rsyslog.com/doc/v3compatibility.html, “输出文件同步”部分

Rsyslogd 尝试尽可能保持与原版 syslogd 的兼容性。因此,它保留了原版 syslogd 的默认设置,即在未另行指定的情况下同步每个文件写入(通过在输出文件名前面放置破折号)。虽然这在过去硬件可靠性低得多且 UPS 很少的日子里是一个有用的功能,但在当今世界,这已不再有用。相反,同步是一个高性能问题。有了它,rsyslogd 写入文件大约 50 比没有同步时慢。由于 IO 活动较多,同步还会影响整体系统性能。在 rsyslog v3 中,同步默认已关闭。这是通过特定配置指令“$ActionFileEnableSync on/off”完成的,默认情况下该指令处于关闭状态。因此,即使 rsyslogd 找到同步选择器行,默认情况下也会忽略它们。为了启用文件同步,管理员必须在 rsyslog.conf 的顶部指定“$ActionFileEnableSync on”。这可确保同步仅发生在管理员实际需要该(性能密集型)功能的某些安装中。在大多数情况下(如果不是全部),这会显著提高 rsyslogd 的性能而不会产生任何负面影响。

相关内容