私はOSXでdnsmasqを実行しています。
また、newsyslogを使用してログファイルを回転させます。ここにいる/etc/newsyslog.d/dnsmasq.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/dnsmasq.log nobody:admin 640 5 10000 * Z
ログは正しく回転しますが、この場合は新しいログファイルに1行が記録されますが、再起動するまですべてのログ記録が停止しますdnsmasq
。
Nov 2 15:30:00 nexus newsyslog[1932]: logfile turned over due to size>10000K
最後に、これは私のものです/Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.dnsmasq</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/dnsmasq/sbin/dnsmasq</string>
<string>--keep-in-foreground</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
この問題を解決するための最良の方法を知っていますか?
答え1
次のように、dnsmasq.confにpid_fileとsig_numを追加する必要があります。
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/dnsmasq.log nobody:admin 640 5 10000 * Z /var/run/dnsmasq.pid 31
sig_num 31 は SIGUSR2 であり、dnsmasq にログファイルを閉じて再度開くように指示します。