MacでVPNを繋ぎっぱなしにするAppleScript
MacでVPNを繋ぎっぱなしにするAppleScript を90%コピペで作成した。 中国にいるときはTwitter,Facebookとか見るために常時VPN使ってるし、 べつにVPN繋ぎっぱなしでもデメリットないから、ずっと繋げておくことにした。 (国内にいても、家からニコ動に繋ぐと途中の回線がどこか細いらしくてかなりプツプツするので、VPN使ったりする。)
「VPN AppleScript」とかググると下のようなコードがいくつか出てくるんだけど、 2箇所だけ変更した。
on idle tell application "System Events" tell current location of network preferences set myConnection to the service "My VPN" if myConnection is not null then if current configuration of myConnection is not connected then display notification "Connecting VPN..." connect myConnection end if end if end tell return 15 end tell end idle
変更したのは7行目と12行目。
7行目で画面右上にNotificationを出してる。 再接続するときに"Connecting VPN..."と表示するようにした。 「気づかないうちに接続切れてて、知らないうちにに再接続される。」 みたいなことされると、気づかないうちにSSHのパイプ切れたりするから 一応繋ぎますよ〜って通知出すようにした。
12行目はVPNが繋がってるかどうかを確認する周期を15秒にしてる。 「ん?なんかサーバーからのレスポンスない!?」と思ってリロードするまでにだいたい15秒ぐらいな気がしたから、15秒以内に再接続されるようにしておくと、いいかなと思った。
あ、そうそう。
使うときには4行目の"My VPN"をここの名前に変えてね。
上のAppleScriptを使ってアプリケーションを作成する方法は Mac OS X起動時にVPNで自動接続&途切れても再接続するように設定できる を参考に。
参考サイトに書かれているように、アプリアイコンをDockに表示させないようにすると "VPN Auto Connect" のアプリを終了することができなくなる。
どうしても終了したいときにはターミナルで
$ kill -9 `ps -ax | grep '[V]PN Auto Connect' | awk '{print $1}'`
とやってあげると終了できる。
へへへ、これで中国でのネット生活も充実するぜ