Macが度々固まってたのが直ったみたいです

仕事で使ってる会社Macが度々レインボーマウスになってしまうので、対策しました。 対策後10日ほど経ちますが、一度も症状出ていないので、効いたと思われます。

マシンの仕様など

OS X EL Capitan
バージョン 10.11.6

MacBook Pro (Retina, 13-inch, Late 2013)
2.4 GHz Intel Core i5
メモリ 8 GB 1600 MHz DDR3

状況

突然レインボーマウスがぐるぐるして、EmacsChromeやiTerm2やアクティビティモニタが反応しなくなる。
マウスは動くし、Dockのマウスオーバーも反応するし、ウィンドウを前面に持ってきたりはできるけれど、それも調子に乗ってると無反応になっちゃう。

アクティビティモニタも固まってるので、どのプロセスがおかしいか、とかもわからない。

観察

あらかじめTerminal.appでtopコマンドを実行しておく。もう1つTerminal.appのウィンドウを開いておく。
すると、上記現象が発生したときに、
distnoted
というのがCPUを4コア全部食ってるのが見えた。

launchdでdistnotedを定期的に終了させる - @znz blog
なるほどねぇ。distnotedは殺しちゃえばいいのか。

ということで、ひとまず、「もう1つ」のほうのTerminal.appで

killall -9 distnoted

したら、レインボーカーソル状態を脱出した!

観察2

別の日に同じ状態で使ってたらまたレインボーカーソルになった。
が今度はTerminal.appも固まっててニッチもサッチもいかず。
この時は電プチ。

対策

やっぱ自動で定期的にkillしないとダメだ、ということで、
launchdでdistnotedを定期的に終了させる - @znz blog
のとおり、

~/Library/LaunchAgents/local.killall.distnoted.plist

というファイル名で、

<?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>Label</key>
    <string>local.killall.distnoted</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/killall</string>
        <string>distnoted</string>
    </array>
    <key>StartInterval</key>
    <integer>600</integer>
</dict>
</plist>

こういう内容のファイルを作って、

launchctl load ~/Library/LaunchAgents/local.killall.distnoted.plist

した。

ちなみに、上記を修正、反映するときはこうする。

launchctl unload ~/Library/LaunchAgents/local.killall.distnoted.plist
launchctl load ~/Library/LaunchAgents/local.killall.distnoted.plist

その後

幸せに暮らしましたとさ