Mac OS X Leopardではcronを使って定期的にIPアドレスに変化がないかをチェックしていましたが、新しいOS X 10.8サーバーでは、launchdをつかって定期的にチェックするようにします。
IPアドレスをチェックし、変更があった場合にDDNSの登録を変更するスクリプトは前回のものと同じです。
ただし、以前はhttpで接続していましたが、今回はhttpsで接続するようにしました。
IPアドレスをチェックしてDDNSの登録をアップデートするスクリプトは、ddns-update.plという名前で/usr/local/binにおいています。
置き場に悩みましたが、/Library/LaunchDaemons に jp.dip.triode.ddns.plistを置くことにします。
plistのなかみは…
<?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>jp.dip.triode.ddns</string> <key>WorkingDirectory</key> <string>/var/root</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/ddns-update.pl</string> </array> <key>StartInterval</key> <integer>300</integer> </dict> </plist>
<key>WorkingDirectory</key> <string>/var/root</string>
で、Working Directoryをrootのホーム/var/rootに変更しています。
/usr/local/bin/ddns-update.pl が作成するファイルは/var/rootにできます。
<key>StartInterval</key> <integer>300</integer>
コマンドを実行する間隔を300秒に設定しました。
StartCalenderInterval
で、cronと同じようにスケジューリングすることも可能ですが、今回のケースは単純に時間を待つだけで問題ありません。
launchdへの登録はサーバーを再起動してもよいですが、
[sh]
# launchctl load /Library/LaunchDaemons/jp.dip.triode.ddns.plist
# launchctl start jp.dip.triode.ddns
[/sh]
として開始することができます。
[sh]
# launchctl list | grep jp.dip.triode
– 0 jp.dip.triode.ddns
[/sh]
でロードされているかを確認できます。