特定のコマンド実行が終わるまでPCをスリープさせない(mac)

時間のかかる処理をローカルPCで動かしている場合などスリープさせたくないことがある

PCの電源管理の設定でスリープしないようにすればOKだが、当然それだと必要な処理が終わった後でもスリープにならないため無駄

以下のコマンドで実行中のみスリープになることを防げる

caffeinate -i <スリープさせたくないコマンド>

また、上記でコマンドを指定しないで実行するとそのcaffeinateプロセスが生きている間はスリープしなくなる

ちなみにその他のオプションで以下のような機能がある

オプション 効果
-d ディスプレイがスリープになることを防ぐ
-m ディスクアクセスがスリープになることを防ぐ
-s 電源アダプタに繋いだときのみスリープになることを防ぐ
-u ユーザが操作している状態を保つ(ディスプレイがオフになるとユーザが操作した場合と同様にオンの状態に戻る)
-t 上記オプションのタイムアウトを設定
-w pid指定でそのプロセスが終了するまで上記のオプションを保つ

なのでコマンド実行後にそのプロセス終了までスリープさせたくないなら

caffeinate -i -w <pid>