ダッシュボードクライアントが死なないようにする

 Dashboardニコ生widget を置いているのだけど、普通に使っていてもいつの間にか応答しなくなり Dashboard ごと死んでしまう。別件で Spaces のベゼルが消えなくなったりする現象に今まで遭っていたのでいつでも Dock をリスタートできるようにはさせているのだが、ニコ生に関してはやはりリアルタイムで欲しい情報なので死なないように頑張ってみる。
 とりあえず定期的に再起動させればいいんじゃね? と思い crontab でやってみたが、コマンドが実行されるタイミング毎にフォーカスが亜空間に吸い取られる問題に遭遇。詳しく書くと、メニューバーの様子はしっかりと現在フォーカスしているはずのアプリケーションになっているのに、ウインドウのフォーカスが外れているという気持ち悪い状態になる。
 ググッてみても同様の問題の解決策には辿り着けなかったが、新たな希望として OS X 10.5以降は cron より launchd がナウい! というのを見つけた。のでこれでやってみる。
 まず同エントリで紹介されている Lingon をインストールする。現在の最新版配布先は Mac App Store で600円するけど、SourceForge にあるフリーの旧バージョンでも問題なく使える。

 そして設定。1.で登録名を適当につけて、2.には "killall DashboardClient" とリスタートのコマンドを入力。3.で変えるところは赤い四角で囲った、30分に一度実行するというところだけ。3.の一番上に "Keep it running all the time no matter what happens" というのがあって、これはこの記事の表題通り死なないように動かし続けるということらしい。少しの間これで使ってみたのだけどメモリをやたらバクバクと食われてしまった。どこまで食べ続けるのかは試していないがこれなら再起動でいいや、と上記の設定になった次第。
 以上を行って2週間以上経つがフォーカス問題もなく快適に使えている。ニコ生widgetGrowlの表示タイプはスティッキーにしているので、たとえ通知直後にリスタートコマンドが動いても大丈夫なもより。

参考:
cronからlaunchdへ(より効率的なジョブ管理を目指して) - ザリガニが見ていた...。