さて、次は自動的にMac OS X起動時にOpenVPNが起動される様に設定する。
本当はMacPortsのお作法的にはdaemondoにdaemonとして起動してもらう様な設定を書くのが正しいのだと思うが、どうにもdaemondoに関するドキュメントが見当たらないので、OS Xのlaunchdを使って自動的に起動してもらうことにした。止めるときの事はあんまり考えない様にする。
これには、以下のファイルを用意する。
/Library/LaunchDaemons/org.macports.openvpn2
—
<?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>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.macports.openvpn2</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/sbin/openvpn2</string>
<string>/opt/local/etc/openvpn2/server.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
—
後は、以下のコマンドで有効にする。
sudo launchctl load -w /Library/LaunchDaemons/org.macports.openvpn2
これで起動してるはず。
ps -ax | grep openvpn2
ifconfig -a
でプロセスが起動しているか、tunデバイスが設定されているかを確認しよう。これが動いていれば再起動しても自動的に起動する様になってるはず。
逆に止めたければ、先ほどのlaunchctlのコマンドでloadをunloadにすればいい。
Tigerでファイルサーバーを動かしていた時には、起動時にログインしなくてもネットワーク・スタックが動作を開始していた様に思うのだが、Leopardだとどうもログインして初めてネットワーク・スタックが動作を開始する様で、以前に試した時には起動時にログインせずに放置すると外からssh出来なかった。
ということで、Leopardでは一度ログインしてからログアウトして放置した方がいいだろう。一度ログインしてネットワーク・スタックが動き出せば、以後は電源を切らない限りログアウトしてもネットワーク・スタックが動き続けるのは間違いない。