MacBookでau Wi-Fi接続ツールを自動起動する

投稿者: | 2014年5月2日

一般的に、Mac OS Xで「Wi-Fi接続をトリガーに(SSIDに応じて)何かを実行する」というのは容易に書ける。今回は、au Wi-Fiが提供するアクセスポイントに接続した際にすかさずau Wi-Fi接続ツールを起動するという機構を実現してみた。
まずは、SSIDを判定してアプリを起動するスクリプトを書く。もちろん、shが苦手なら他の言語でも良い。

細かいテクニックとして、killall -sでアプリが起動しているかをチェックし、open -gで前面に出てきてフォーカスを奪うのを抑制している。いきなりopenしてもよさそうだが、-gが利かないアプリもあるので一般的にこうするのが望ましい。
さて、このスクリプトをcronに登録して定期実行しても動くといえば動くが、もうちょっとスマートな方法を考えよう。Unix系OSでは、ネットワークの接続・切断時には特定の設定ファイルが更新されることが多い。OS X 10.9の場合は、昔ながらの/etc/resolv.conf(実体は/var/run/resolv.conf)を含め、3つほどのファイルが、ネットワーク環境の変化に応じて更新されるようだ。
そして、OS Xにはファイルの更新を検知する機構が備わっており、launchd(8)を使えば一般ユーザでも手軽に更新をトリガーに何かを実行するということが可能だ。
つまり、こんなplistを書けば良い。(ホームディレクトリのパスは各自要修正)

あとは、launchdに登録すれば完了。

これで、対応アクセスポイントにつながるや否や、接続ツールが起動して認証され、Wi-Fiが使えるようになるはず。
うまく動いたら、他の接続サービスでも同様にするとか、特定のSSIDのときだけdaemonを起動するとか、応用してみよう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です