長時間の処理やダウンロード中にMacが勝手にスリープして作業が止まってしまって困っていませんか。
ターミナルから簡単にスリープを止める方法をやさしく手順付きで紹介します。caffeinateコマンドの基本から実用的なオプション、スクリプトや自動化の応用、トラブル対処まで日常で使える内容をわかりやすく伝えます。
| 項目 | 内容 |
|---|---|
| 独自コンテンツ1 | 実際に使って便利だった一行コマンドの具体例とその動作確認手順。 |
| 独自コンテンツ2 | スクリプトやAutomatorで自動化する現場で使える工夫と注意点。 |
| 独自コンテンツ3 | スリープ防止で起きやすいトラブルの切り分け方法と安全に戻すコツ。 |
まずは簡単な一行コマンドから試してみましょう。作業が中断されない安心感がすぐ手に入ります。
Macエンジニア怖がらずにやってみてください。コマンドは思ったよりシンプルで確実に役立ちますし、ちょっとした工夫で普段の作業がずっと楽になりますよ。
Macでcaffeinateコマンドで一時的にスリープを止める方法


Macで長い処理を実行しているときにスリープで中断されると困りますよね。caffeinateコマンドを使えば簡単に一時的にスリープを止められます。
このコマンドは追加インストール不要でシステム標準として使えます。オプションを切り替えるだけで用途に合わせた止め方が選べます。
ここでは基本の使い方と実際の手順を初心者にも分かりやすく紹介します。安心して操作できるように順を追って案内します。



焦らずに操作すれば大丈夫ですよ、ちょっとした操作でスリープを止めて作業を安全に続けられます。
指定秒だけスリープを止めるパターン


指定秒だけスリープを止める方法はちょっとした作業や動作確認にちょうどいいです。時間を秒で指定するとその間は確実にスリープしません。
たとえば1時間なら3600秒を指定します。短時間のダウンロードやログ取得などに気軽に使えます。
Terminalでcaffeinate -t 3600を実行する手順
SpotlightでTerminalと入力するかアプリケーション>ユーティリティからTerminalを開く。
次のコマンドを入力するcaffeinate -t 3600とすれば1時間スリープを止められる。
処理が終わったらControl-Cで停止するかTerminalを閉じてください。
特定プロセスが動作している間だけ止めるパターン


特定のプロセスが動いている間だけスリープを止めると、本当に必要な処理だけ保護できます。バックグラウンドで走るビルドや長時間処理に便利です。
プロセスの終了を待つオプションを使えば手動で止める必要がなく安心です。次にPIDの確認と実行手順を見ていきましょう。
TerminalでプロセスのPIDを確認してcaffeinate -w PIDを実行する手順
pgrep -f プログラム名やps auxで対象のPIDを調べる。Activity Monitorから探すこともできる。
見つけたPIDでcaffeinate -w PIDを実行するとそのプロセスが終わるまでスリープを止められる。
プロセスが終了すれば自動的にスリープ制御が解除されるため基本的に手動操作は不要です。
Macでpmsetコマンドでスリープ設定を永続的に変える方法


Terminalから永続的にスリープ設定を変えたいときはpmsetが便利です。caffeinateは一時的にスリープを止める道具ですがpmsetは設定を保存してくれるので、毎回やり直す手間が省けます。
pmsetでは電源状態ごとに振る舞いを切り替えられます。pmsetの-cオプションは電源アダプタ接続時、-bはバッテリー時、-aは全状態を指しますし、sleepに分数を入れて調整できます。
sleepに0を指定するとスリープを無効にできます。設定には管理者権限が必要なのでsudoを使い、設定を確認するにはpmsetの-gで現在値をチェックしてください。
- -cは電源アダプタ接続時に適用する設定です。
- -bはバッテリー駆動時に適用する設定です。
- -aはすべての電源状態に対して同じ設定を適用します。
電源状態ごとにスリープ時間を変えるパターン


電源状態ごとにスリープ時間を変えるのは実用的な手です。たとえば作業中はアダプタ接続時にスリープを無効にして、外出時はバッテリーの節約のため短めにするという使い分けができます。
具体的にはアダプタ時はsleepを0にしてバッテリー時は10や15にするなどがよく使われます。好みや作業スタイルに合わせて値を変えつつ、pmsetの-gで確認しながら調整すると安心です。
Terminalでsudo pmset -c sleep 0とsudo pmset -b sleep 10を入力する手順
アプリケーション→ユーティリティからTerminalを起動します。慌てずに開いてください。
次のコマンドを入力してアダプタ接続時のスリープを無効にします。sudo pmset -c sleep 0。実行すると設定が保存されます。
バッテリー稼働時は次のように設定します。sudo pmset -b sleep 10。最後にsudo pmset -gで現在の設定を確認してください。
Macで特定条件だけスリープを止める方法


作業中だけMacをスリープさせたくない場面は意外と多いです。例えばローカルで重いビルドを回しているときや、リモートで長時間の操作をしているときなどです。
ここでは状況に応じた実践的なやり方を紹介します。主な選択肢は、アプリの実行に連動して止める方法と、SSH接続中にバックグラウンドで止める方法の二つです。



気楽に試してみてください。ちょっとしたコマンド一つで作業が中断されなくなるので、作業効率がぐっと良くなりますよ。
アプリ実行中だけスリープを止めるパターン


アプリが動いている間だけスリープを止めたいときは、起動したアプリのプロセスに対してcaffeinateで待ち受けるのが簡単です。こうするとアプリを閉じると自動で元に戻ります。
ポイントはアプリ名で正確にプロセスを特定することです。ウィンドウ名やバンドルIDでの違いに注意すると失敗しにくくなります。
openでアプリを起動してpgrepとcaffeinate -wで連動させる手順
open -a AppNameでアプリを起動します。AppNameは起動したいアプリの名前に置き換えてください。
pgrep -l AppNameで動作中のプロセスを確認します。表示されたPIDをメモしてください。
caffeinate -w PIDを実行して、該当プロセスが終了するまでスリープを止めます。作業が終われば自動で解除されます。
SSH接続中にMacをスリープさせないパターン


SSHで遠隔操作中は接続が切れてもMac側でスリープを止めておきたいことがあります。リモートで実行する場合はnohupやscreenを使ってcaffeinateをバックグラウンドに回すと便利です。
短時間の作業ならtmuxやscreenでセッションを維持する方法が手軽です。長時間のバッチ処理ならnohupで仕掛けてから切断しても安心です。
リモートからの作業中にnohupやscreenでcaffeinateをバックグラウンド実行する手順
screenやtmuxを起動してからcaffeinate -iを実行します。セッションをデタッチしてもcaffeinateは動き続けます。
nohup caffeinate -i >/dev/null 2>&1 &を実行してからログアウトします。接続が切れてもプロセスは継続します。
不要になったらpsやpgrepでcaffeinateのPIDを探してkillで終了します。バッテリーを無駄にしないためにも忘れずに終了してください。
Macでログイン時に自動でスリープを止めるやり方(応用)


ログイン時に自動でスリープを止めたいとき、毎回ターミナルを開いてcaffeinateを実行するのは面倒で気が重くなりますよね。そんなときはログイン直後に自動でcaffeinateを起動する仕組みを作ると快適です。ここでは初心者にもやさしく、実際に動くやり方と注意点を具体的に紹介します。
一度設定すれば以後は何も気にせず使えるので、ビルドや大きなダウンロード、リモートデモ中の画面共有などでとても便利になります。設定方法はいくつかありますが、扱いが安定していて自動化に向く方法を中心に説明していきます。少しの手間で毎日のストレスが減るので気軽に試してみてください。
- LaunchAgentでログイン時にcaffeinateを起動する方法。安定して常駐させたい場合におすすめです。
- ログイン項目にAutomatorやラッパーアプリを登録する方法。GUIで設定したい人向けです。
- KeepingYouAwakeなどのサードパーティアプリを使う方法。手軽にオンオフを切り替えたいときに便利です。
LaunchAgentでcaffeinateを自動実行するパターン


LaunchAgentを使うパターンは、ユーザーのログイン時に指定したコマンドを自動で実行してくれる仕組みを使います。caffeinateをプログラム引数にしてplistに書いておくと、ログイン直後からスリープ抑止が働き続けます。運用的にもシンプルで、ログインごとに確実に動かしたい場合に向いています。
ポイントはプログラムへのフルパスを使うことと、RunAtLoadを有効にすることです。たとえば/usr/bin/caffeinateをProgramArgumentsに入れてRunAtLoadをtrueにするとログイン時に自動で起動します。下に実際に使うコマンドの例を載せるので、そのままplistに組み込めます。
/usr/bin/caffeinate -i -d
~/Library/LaunchAgentsにplistを置いてlaunchctlで読み込む具体手順
テキストエディタでLabelとProgramArgumentsに/usr/bin/caffeinateと必要なオプションを入れ、RunAtLoadをtrueにします。こちらで起動時に確実に実行されるようになります。
ファイル名はcom.example.caffeinate.plistのようにし、所有者が自分になっていることを確認します。パーミッションは一般的に644にしておくと安全です。
最新のmacOSではbootstrapを使って読み込みます。たとえばlaunchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.example.caffeinate.plistを実行すると即座に起動します。
よくある質問


- caffeinateって何
Macでスリープを一時的に止めるためのコマンドです。例えば長時間のビルドやバックアップを途中で止めたくないときに使えます。コマンド一つで手軽にスリープ対策できるのが便利です。
- 基本的な使い方はどうしたら良い
よく使うのは-cオプションや-tオプションです。たとえばcaffeinate -t 3600とすると3600秒だけスリープを防げますし、caffeinate -iはアイドルによるスリープを防ぎます。用途に合わせてオプションを選ぶだけで始められます。
- 実行中のプロセスが終わるまで止めたいときはどうする
その場合はcaffeinate -w PIDを使うと便利です。たとえばバックグラウンドで動かしたビルドのPIDを指定すると、そのプロセスが終わるまでスリープが止まります。自動で復帰するので安心して使えます。
- ふたを閉じたときも止められるの
caffeinateはソフトウェア的なスリープ制御なので、Macを閉じた物理的な動作でのスリープは完全に防げないことがあります。外部ディスプレイや電源接続があると挙動が変わるので注意してください。使う環境を確認すると失敗しにくくなります。
- 管理者権限は必要ですか
基本的な使い方ではsudoは不要です。一般ユーザーでもcaffeinateで十分にスリープを制御できます。システム設定を強く変えるような操作は別ですが、日常的な利用なら権限は気にしなくて大丈夫です。
- よくある失敗や気をつけることはありますか
バッテリー駆動で長時間止めっぱなしにすると電池が減る点に注意してください。自動解除が欲しいときは-tで時間指定すると安全ですし、手動で止めるならCtrl+Cやkillで終了できます。作業中だけ使う習慣をつけると安心です。
まとめ


caffeinateコマンドでMacを一時的にスリープさせない方法をまとめました。ターミナルから手軽に使えて、特定の処理実行中だけスリープを止めたり、時間で自動的に解除したりできます。日常の作業や長時間のビルドでとても役立つテクニックです。
現場ではcaffeinate -iで外部からのスリープ要求も無視して確実に止めるか、caffeinate -t 3600で時間を区切る使い方がよく使われます。バックグラウンド処理にはnohupやtmuxと組み合わせてログを残すとあとで確認しやすくなりますし、運用前に短時間で試す習慣が安心につながります。
以下に手軽に使えるコマンド例を載せます。そのままターミナルに貼り付けて試せますし、用途に合わせて時間やオプションを調整してください。
caffeinate -i
caffeinate -t 3600



ちょっとした一手間で作業がぐっとラクになりますよ。まずは短い時間で試して慣れていってくださいね、困ったときは落ち着いてログを見れば大抵解決できます。
スリープ抑止はバッテリーの消耗につながるので、可能なら電源につないで使ってください。長時間使うときはタイマー設定を忘れないように注意してください。
