我正在配置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
答案1
当您旋转日志时,您实际上是在创建一个新文件,该文件将位于不同的索引节点上。由于httpd
在运行时保持日志文件打开,因此写入日志消息的文件描述符现在将指向一个不存在的文件。这就是为什么您需要向其发送SIGUSR1
信号,这将使其重新打开日志文件(即删除陈旧的文件描述符并打开新文件)。按照httpd
的手册页。
httpd当它接收到时重新读取其配置文件
SIGHUP
并在接收到时重新打开日志文件SIGUSR1
。
(请注意,这不是通用规则,SIGUSR1
不同的软件会触发不同的事情。)
我并不完全确定这一点,但事实上,不需要发出smtpd
日志已轮换的信号,这强烈表明它会不断打开和关闭日志文件,这在邮件服务器上可能很便宜,但可能不是在繁忙的 HTTP 服务器上。
在其手册页上没有表明需要relayd
在旋转日志之前发出信号,但是(这只是一种预感)我希望它的行为类似于httpd
.我的relayd
use实例syslog
,所以我无法复制您的用例,但您可以使用类似的方法fstat | grep "relayd"
来检查它是否使日志文件保持打开状态。
您可以在邮件列表中询问[email protected]
,或者通过看代码。