macOS で画面の明るさを変更できなくなったときの対処メモ

何らかの問題で fn + F1/F2 や System Preferences.app のスライダーが効かなくなった時に雑に再起動する前に回復する手段がないか試した。

macOS の画面の明るさはおそらく /usr/libexec/corebrightnessd --launchd のプロセスによって制御されている。変更できなくなった時にこのプロセスを殺して起動し直すことで状態が初期化されて回復する。 Activity Monitor.app で corebrightnessd を終了すると勝手に生き返る。

これだけの話だがもう少し掘り下げて、 man hier でディレクトリレイアウトを知ることができる。今回の corebrightnessd が置かれている /usr/libexec

system daemons & system utilities (executed by other programs)

と書かれていて隣の /usr/sbin

system daemons & system utilities (executed by users)

とされている

明るさと同様にキーボードショートカットがあるサウンドを制御してると思われる systemsoundserverd は /usr/sbin に置いてある。このディレクトリの違いは launchd によって起動されるかどうかの違い?

man hier から得られた情報でわかることは何かがうまく動いてないときは /usr/{libexec,sbin} 以下のデーモンバイナリを確認してそれらしい名前を見つけたらプロセスから探して殺すと上手くいくかもしれない。