Macのcaffeinateコマンド:ターミナルでスリープを止める方法
caffeinateはMacをスリープさせないmacOS標準のコマンドです。-dで画面、-iでスリープを止め、-tで時間を指定し、Ctrl+Cで終了。オプションと実行例、caffeinateではSlackのアクティブが保てない理由。
On this page
caffeinate コマンドを使うと、ターミナルからMacをスリープさせずにおけます。画面をつけたままにするなら caffeinate -d、システムのスリープだけ止めるなら何も付けずに caffeinate を実行し、止めるときは Ctrl+C を押します。
1時間で止めたいなら -t 3600 を付けます。caffeinate -i ./backup.sh のように後ろにコマンドを書けば、そのコマンドが動いているあいだだけスリープを止めます。macOSに最初から入っていて、管理者のパスワードもインストールもいりません。
Slackのアクティブ表示は保てません。Slackは、Macが起きていてもいなくても、Slackのウィンドウでの最後の入力から10分で離席中にします。caffeinateが防げるのは、Macがスリープしたときにすぐ離席中になることだけです。
このページのコマンドはすべて、2026年9月30日にmacOS 26.5.2のMacBook(Appleシリコン)で実行し、pmset -g assertions で1つずつ確認しました。結果は下に載せています。
caffeinateのオプション
意味は man caffeinate によるものです。右の列は、私たちのMacで各オプションが作ったアサーション(スリープを止める要求)で、pmset -g assertions に出た名前です。
| オプション | すること | 確認できたアサーション |
|---|---|---|
-d | 画面のスリープを防ぐ | PreventUserIdleDisplaySleep |
-i | システムのアイドルスリープを防ぐ | PreventUserIdleSystemSleep |
| なし | -i と同じ | PreventUserIdleSystemSleep |
-m | ディスクのアイドルスリープを防ぐ | PreventDiskIdle |
-s | システムのスリープを防ぐ。電源接続時のみ | PreventSystemSleep |
-u | ユーザーが操作中だと宣言し、画面をつける。-t がなければ5秒だけ | UserIsActive |
-t 秒数 | その秒数がたつとアサーションを外す | 「caffeinate asserting for 20 secs」 |
-w PID | そのIDのプロセスが終わるまで続ける | 「asserting on behalf of Process ID 97977」 |
| コマンド | そのコマンドが動いているあいだ続ける | 追加のものはなし |
私たちのMacでpmsetに出た内容
caffeinate -dims -t 20 を動かして1秒後の出力です。
$ caffeinate -dims -t 20 &
$ pmset -g assertions | grep caffeinate
pid 97573(caffeinate): [0x0001aacb000197db] 00:00:01 PreventUserIdleSystemSleep named: "caffeinate command-line tool"
Details: caffeinate asserting for 20 secs
pid 97573(caffeinate): [0x0001aacb000597dc] 00:00:01 PreventUserIdleDisplaySleep named: "caffeinate command-line tool"
Details: caffeinate asserting for 20 secs
pid 97573(caffeinate): [0x0001aacb000797dd] 00:00:01 PreventSystemSleep named: "caffeinate command-line tool"
Details: caffeinate asserting for 20 secs
pid 97573(caffeinate): [0x0001aacb000f97de] 00:00:01 PreventDiskIdle named: "caffeinate command-line tool"
Details: caffeinate asserting for 20 secs
時間を指定した実行は自分で終わりました。caffeinate -t 2 は2.10秒で、caffeinate -i sleep 3 は包んだコマンドと同じ3.01秒で戻りました。-w では、見張っていたプロセスが終わるとすぐにcaffeinateも終了しました。caffeinate -u -t 3 が終わったあと、pmset -g assertions | grep -c caffeinate は0を出力したので、何も残りません。どれもパスワードは聞かれず、ふつうのユーザーのまま動きました。
caffeinate -i と -d の違い
- •
caffeinate -iはコンピューターを動かし続けますが、画面は消えることがあります。ダウンロード、バックアップ、ビルドに向いています。 - •
caffeinate -dは画面をつけたままにします。画面を見せておきたいときや、スクリーンセーバーとそのあとのロックを止めたいときに使います。 - •
caffeinate -diは両方です。オプションは組み合わせられるので、caffeinate -dimsなら4つ同時に指定できます。
コマンドを動かすのでなく設定でずっと変えたいなら、Macのスクリーンセーバーをオフにする方法をご覧ください。
caffeinateの使用例
# Ctrl+Cを押すまで画面をつけたままにする
caffeinate -d
# 2時間スリープさせず、そのあと止める
caffeinate -di -t 7200
# コマンドが動いているあいだだけスリープさせない
caffeinate -i rsync -a ~/Projects /Volumes/Backup/
# ほかのアプリが終了するまでスリープさせない(PIDはpgrepで調べる)
caffeinate -i -w "$(pgrep -x Transmission)"
# バックグラウンドで動かし、同じターミナルを使い続ける
caffeinate -d &
動いているかは、上の出力のように pmset -g assertions | grep caffeinate で確かめます。grep を付けなければ、Macを起こしたままにしているほかのものも一覧に出ます。私たちのMacでは、Amphetamineアプリと、あるElectronアプリが出ていました。詳しくはMacがスリープしない理由にあります。
caffeinateの止め方
pgrep -l caffeinate でプロセスIDを調べて、そのIDを kill します。killall caffeinate でも止まりますが、スクリプトやほかのアプリが始めたものも含めて、すべてのcaffeinateが止まります。-t を使ったなら、時間がくれば自分で止まります。caffeinateとMacBookのふた
caffeinateを動かしていても、ふたを閉じるとMacBookはスリープします。例外は、電源につないで外部ディスプレイ、キーボード、マウスをつないでいる場合です。caffeinateは開いているMacを起こしておくもので、クラムシェルモードの代わりにはなりません。ディスプレイをつながずに閉じたMacを起こしておくには、管理者用のコマンドpmset disablesleepを使います。0に戻すまで効き続けます。MacとWindowsでふたを閉じたまま使う方法はふたを閉じてもノートパソコンをスリープさせない方法にあります。
caffeinateでSlackはアクティブのまま?
なりません。同じことをCaffeineアプリで試したところ、Slackは10分目まで緑で、画面がついたまま離席中になりました。テストの全体はCaffeineでSlackはアクティブのままかにあります。
caffeinateがなくすのは、Macのスリープやロックという1つのきっかけだけで、これはすぐに離席中になる原因です。Slackの操作なしのタイマーが数えるのはSlackのウィンドウでの入力だけで、caffeinateは入力を作りません。caffeinate -u は数秒だけ画面をつけますが、これもSlackでの入力ではありません。MacでのルールはMacでSlackをアクティブに保つに、すべての方法の比較はSlackをアクティブに保つ方法にあります。
コマンドを打つよりメニューバーのアイコンをクリックしたいなら、Amphetamine、KeepingYouAwake、Caffeine、Lungo、KeepAwakeをMacをスリープさせないアプリの比較で比べています。
会社のMacでのcaffeinate
caffeinateは最初から入っていて管理者権限もいらないので、管理されたMacでもたいてい動きます。会社がMDMで強制している画面ロックは、それでもかかります。ロックをずっと止めるロック画面の設定はMacの画面をロックさせない方法に、WindowsとLinuxで同じことをする方法は管理者権限なしで会社のパソコンをスリープさせない方法にあります。
よくある質問
caffeinateにsudoは必要ですか?
いりません。自分のユーザーのまま動きます。このページのコマンドは、どれもパスワードなしで動きました。
ターミナルを閉じてもcaffeinateは続きますか?
ターミナルのウィンドウを閉じると、中で動いているものにハングアップ信号が送られます。テストでは、ふつうの caffeinate はその信号ですぐ止まり、nohup caffeinate -t 60 & で始めたものは動き続けました。ウィンドウを閉じたいなら nohup を使います。
Related Articles
Slack Bot Scopes: The Scope Each API Method Needs, Measured on 44 Methods
We gave a Slack bot one scope, called 44 common Web API methods, and read the needed field of every missing_scope error. Then we added the scopes and called them again. The table shows which scope clears each method.
Slack File Size Limit: 1 GB Is Exactly 1,073,741,824 Bytes, Tested
We uploaded files of 50 MB, exactly 1 GiB and 1 GiB plus one byte to Slack through its upload API. The limit is 1,073,741,824 bytes, and a failed upload can still leave a broken file behind.
Slack Dark Mode: Where the Setting Is, and Which Custom Emoji Disappear
Slack's dark mode is under Preferences > Appearance > Color Mode, with Light, Dark and System. We switched modes in Slack web with three test emoji and measured which ones vanish.