ネットワークが変わるたびにpfルールをリロードしようとしていました。 私のplistファイルはここにあります。 /Library/LaunchAgents/com.wwk.networkchange.plistmacOS Sierra:ネットワークが変わるたびにファイアウォールをリロードする
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.wwk.networkchange</string>
<key>ProgramArguments</key>
<array>
<string>sudo /sbin/pfctl -f /Users/wwk/pf.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array>
<string>/private/var/run/resolv.conf</string>
</array>
</dict>
</plist>
私はネットワークインターフェイスが変更されているが、PFのルールが全く再ロードされていないときに/private/var/run/resolv.confが変更されて見ることができます。 FYI、/Users/wwk/pf.confがあり、/ etc/sudoersファイルを介してパスワードを入力せずに/ sbin/pfctlを有効にしました。 ありがとうございました!
ProgramArgumentsに関しては正しいです。私はあなたが指摘したとおりにそれらを整理しましたが、まだ運がありません。 sudoの問題に関しては、sudoersとして登録されていても、まだsudoの接頭辞を付けなければならないことがわかります。 – Pei
@Pei/Library/LaunchDaemonsに移動しましたか(リブートするか、 'sudo launchctl load/Library/LaunchDaemons/com.wwk.networkchange.plist'でロードしますか?それは 'sudo'を無関係にするはずです。 –
ええ、私はそうし、sudo launchctlのロード/アンロードを何度か繰り返したが、まだ運がなかった。 – Pei