osx에서 dnsmasq를 사용하는 newsyslog를 사용한 로그 회전이 실패합니다.

osx에서 dnsmasq를 사용하는 newsyslog를 사용한 로그 회전이 실패합니다.

저는 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

로그는 올바르게 회전하지만 이 경우 새 로그 파일에 한 줄이 기록되지만 다시 시작할 때까지 모든 로깅이 중지됩니다 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에 로그 파일을 닫았다가 다시 열도록 지시합니다.

관련 정보