我正在将relayd配置为将其记录到自己的日志,并且不清楚是否应该运行"pkill..."。
我可以在默认的newsyslog.conf中看到以下内容:
# logfile_name owner:group mode count size when flags
/var/log/maillog 640 7 * 24 Z
/var/log/pflog 600 3 250 * ZB "pkill -HUP -u root -U root -t - -x pflogd"
/var/www/logs/access.log 644 4 * $W0 Z "pkill -USR1 -u root -U root -x httpd"
/var/www/logs/error.log 644 7 250 * Z "pkill -USR1 -u root -U root -x httpd"我添加了maillog行,以表明对于单个守护进程的日志没有"pkill..."标志命令,这至少与我对relayd的日志配置类似。
发布于 2022-02-06 18:34:29
当您旋转日志时,实际上您正在创建一个新文件,该文件将位于不同的inode上。由于httpd在运行时保持其日志文件处于打开状态,因此它写入日志消息的文件描述符现在将指向一个不存在的文件。这就是为什么您需要向它发送SIGUSR1信号,这将使它重新打开日志文件(即删除陈旧的文件描述符并打开新文件)。根据httpd's 手册页的说法。
当收到
SIGHUP时,httpd重新读取它的配置文件,并在接收到SIGUSR1时重新打开日志文件。
(请注意,这不是一个普遍的规则,SIGUSR1会为不同的软件触发不同的东西。)
我不完全确定这一点,但不需要向smtpd发出日志已被旋转的信号这一事实强烈地表明,它一直在打开和关闭日志文件,这在邮件服务器上可能很便宜,但可能不在繁忙的HTTP服务器上。
没有迹象表明需要在relayd手册页上旋转日志之前向其发出信号,但是(这只是直觉),我希望它的行为像httpd。我的relayd实例使用syslog,所以我不能复制您的用例,但是您可以使用fstat | grep "relayd"之类的东西来检查它是否保持日志文件处于打开状态。
您将在misc@openbsd.org邮件列表上或通过看代码获得更明确的答案。
https://unix.stackexchange.com/questions/687022
复制相似问题