スリープが解除されたときに自動でコマンドを実行する【Mac】

2021年10月20日水曜日

Mac

t f B! P L

はじめに

前回の記事(「複数ディスプレイの設定がスリープ後に崩れるのを一瞬で元に戻す【Mac】」で作成したシェルスクリプトを、Macがスリープから起きたときに毎回自動で実行されるようにしたいと思い立った。

「sleepwatcher」のインストールと各種設定

「sleepwatcher」を使えばいいそうなのでさっそくインストール。下記のページを参考にさせていただいた。

うまく動作しない

設定が完了したはずが、何度試しても正常に動作せず。拡張属性を消すなどの方法を色々と試すなどして長時間苦労したが、最終的には「システム環境設定」の「セキュリティとプライバシー」で「sleepwatcher」への許可を与え忘れている項目があったのに気づき、無事に解決した。参考にさせていただページは下記の通り。

私的メモ

以下は私の設定例等の私的メモ。

  • sleepwatcher.plistの設置場所は「~/Library/LaunchAgents/sleepwatcher.plist」。
  • 私は「/usr/local/sbin/sleepwatcher」にインストールしたので「sleepwatcher.plist」も書き換えた(「/opt/local/sbin/sleepwatcher」の部分)。
  • ログが「/Users/tamao/logs/sleepwatcher/」に出力されるように設定してあるが、動作に問題がないことが確認できたら不要なので消す。(で「sleepwatcher.plist」の「StandardOutPath」の行から4行)。

launchctl への登録と解除。

launchctl unload ~/Library/LaunchAgents/sleepwatcher.plist
launchctl load ~/Library/LaunchAgents/sleepwatcher.plist

launchctl登録されているかを確認。

launchctl list | grep sleep

QooQ