しょ〜うぃん広場

おもにTech系なブログ、ときどき個人的なブログ

MacでVPNを繋ぎっぱなしにするAppleScript

MacVPNを繋ぎっぱなしにする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"をここの名前に変えてね。
Screen Shot 2014-07-30 at 10.56.10

上のAppleScriptを使ってアプリケーションを作成する方法は Mac OS X起動時にVPNで自動接続&途切れても再接続するように設定できる を参考に。

参考サイトに書かれているように、アプリアイコンをDockに表示させないようにすると "VPN Auto Connect" のアプリを終了することができなくなる。

どうしても終了したいときにはターミナルで

$ kill -9 `ps -ax | grep '[V]PN Auto Connect' | awk '{print $1}'`

とやってあげると終了できる。

  へへへ、これで中国でのネット生活も充実するぜ