Macのcaffeinateコマンド:ターミナルでスリープを止める方法
caffeinateはMacをスリープさせないmacOS標準のコマンドです。-dで画面、-iでスリープを止め、-tで時間を指定し、Ctrl+Cで終了。オプションと実行例、caffeinateではSlackのアクティブが保てない理由。
無料ツール、このタブでそのまま使えます
caffeinateコマンドを作って確かめる
何をどれだけ起こしておくかを選ぶか、使っているコマンドを貼り付けて、実際に何を保つかを確かめましょう。結果をコピーしてターミナルに貼り付けます。
- It runs in this Terminal window: Ctrl+C stops it, and so does closing the window.
Keep awake
How long
When you close Terminal
Check that it runs
pmset -g assertions | grep -A1 caffeinate # one caffeinate line per assertion, with its Details: PreventUserIdleSystemSleep caffeinate asserting for 7200 secs PreventUserIdleDisplaySleep caffeinate asserting for 7200 secs
Stop it
# Ctrl+C in its Terminal window, or from another one: pkill -f "^caffeinate -di"
Keep it as a word you type
echo "alias awake='caffeinate -di -t 7200'" >> ~/.zshrc
caffeinate keeps the Mac awake, not Slack active. In our test Slack still went away 10 minutes after the last keyboard or mouse input with the screen on: does Caffeine keep Slack active.
On this page
caffeinate コマンドを使うと、ターミナルからMacをスリープさせずにおけます。画面をつけたままにするなら caffeinate -d、システムのスリープだけ止めるなら何も付けずに caffeinate を実行し、止めるときは Ctrl+C を押します。caffeinateは入力を作らないので、Slackの緑の点は保てません。Slack Greenなら、Macがスリープ中でもふたを閉じていても、サーバーからSlackの点を緑に保てます(7日間無料、カード登録不要)。
1時間で止めたいなら -t 3600 を付けます。caffeinate -i ./backup.sh のように後ろにコマンドを書けば、そのコマンドが動いているあいだだけスリープを止めます。macOSに最初から入っていて、管理者のパスワードもインストールもいりません。
Slackのアクティブ表示は保てません。Slackのデスクトップアプリは、Macが起きていてもいなくても、Macでの最後のキーボードまたはマウス入力から10分で離席中にします(Slackデスクトップ版4.52.178のコードで2026年10月7日に確認)。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でMacは起きたままになりますが、Slackは最後のキーボードまたはマウス入力から10分で離席中になります。サーバー側で動くツールなら、入力なしでSlackの点を緑に保てます。ノートPCがスリープ中でも、ふたを閉じていても同じです。
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の操作なしのタイマーはMacのアイドル時間を読みますが、caffeinateは入力を作りません。caffeinate -u は数秒だけ画面をつけますが、アイドル時間のカウンターはリセットしません。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 を使います。
関連記事
Ubuntuの画面ロックを止める方法(GNOME、KDE、Mint)
Ubuntuの画面ロックを止めるには、設定、プライバシーとセキュリティ、画面ロックで自動画面ロックをオフにし、画面を暗くするまでの時間を「しない」にします。同じことをするgsettingsのコマンド、サスペンドも止める方法、1つの作業のあいだだけロックを止める方法、KDE PlasmaとLinux Mintでの手順をまとめました。
Mac用Caffeineアプリ:ダウンロード、設定、代わりのアプリ
Caffeineは、Macを起こしておく無料でオープンソースのメニューバーアプリです。コーヒーカップをクリックすると、Macはスリープせず、画面も暗くならず、スクリーンセーバーも始まりません。本物の入手先、macOSに合うバージョン、すべての設定、動いているかの確かめ方、代わりのアプリをまとめました。
Macの画面がロックされないようにする方法(ITのルールを破らずに)
Macのロックを止めるには、システム設定のロック画面で、ディスプレイをオフにする時間をしないか長めにし、パスワードを要求するまでの時間を延ばします。またはcaffeinate -dを実行します。管理されたMacでできることと、それでもSlackが離席中になる理由もまとめました。