ブログに戻る
Guide

Macのcaffeinateコマンド:ターミナルでスリープを止める方法

caffeinateはMacをスリープさせないmacOS標準のコマンドです。-dで画面、-iでスリープを止め、-tで時間を指定し、Ctrl+Cで終了。オプションと実行例、caffeinateではSlackのアクティブが保てない理由。

Slack Green Team
September 27, 2026
October 3, 2026
5 分で読める
Share:
mac
ターミナル
リモートワーク

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がスリープしない理由にあります。

Slackで「離席中」と表示されなくなります

クラウドベース。ダウンロード不要。ノートPCがオフでも24時間稼働。

caffeinateの止め方

  • • ターミナルのウィンドウで動いているなら、Ctrl+C を押します。
  • • バックグラウンドで始めたなら、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 を使います。

    Always Active

    マウスを動かす必要はもうありません。

    何百人ものリモートワーカーがSlackのステータスを気にしなくなりました。一度設定すれば、永遠にグリーン。

    Related Articles

    Guide

    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 Green Team
    Guide

    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 Green Team
    Guide

    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.

    Slack Green Team