为什么在 logrotate postrotate 配置中经常使用“|| true”和>/dev/null 表达式?

为什么在 logrotate postrotate 配置中经常使用“|| true”和>/dev/null 表达式?

有无数的 logrotate 配置示例包含以下内容:

postrotate
  systemctl reload nginx 1> /dev/null 2> /dev/null || true
endscript

但背后的动机是什么?为什么这种情况如此普遍?将输出传递到某些文件/日志中以便在出现问题时轻松调试不是很明智吗?

答案1

在这种情况下,服务重新加载的错误可以在 logrotate 中被忽略,因为当执行重新加载命令时,它们将由 systemd 本身处理。

此外,日志消息无论如何都会存储在日志中,因此为避免重复,将忽略额外的输出。

相关内容