ガイド

pmset disablesleep より安全なやり方

ふたを閉じたままMacを起こしておく方法を検索すると、sudo pmset -a disablesleep 1 を実行しろと出てきます。確かに効きます。しかしこれは、持ち主も期限もなく、なぜ入れたのかも覚えていないシステム全体のスイッチです。だから多くの人はこれに二度出会います。入れるときと、「なぜ1週間もMacがスリープしていないのか」を調べるときに。ここでは、それが実際に何をするのか、どう戻すのか、そして同じ発想を対象を絞って実現するとどうなるのか — Perked が形づくられた考え方を説明します。

このコマンドが実際にすること

多くのスリープ防止ツールは電源アサーションを取ります。プロセス単位の丁寧な要求で、macOS が他の事情と併せて判断するものです。disablesleep はそれとは違います。電源管理そのものに「スリープは無効」というフラグを立てます。アイドルスリープだけでも、ディスプレイスリープだけでもなく、ふたを閉じたときのスリープも含めて、すべてです。

だから人はこれに手を伸ばします。外部ディスプレイなしでふたを閉じた動作を得られる唯一の設定だからです。そして同じ理由で、そのまま常用するのは危険です。

まず、今それは入っていますか?

何よりも先に確認を。過去にそのコマンドを貼り付けたことがあるなら、何か月も前のまま残っているかもしれません。

SleepDisabled が 1 で、自分が設定した覚えがなければ、どれかのアプリが設定しています。ほぼ確実に、クラムシェル対応のスリープ防止ツールです。それ自体が悪いわけではありませんが、指させるアプリであるべきですし、仕事を終えたらフラグを片付けるものであるべきです。

caffeinate: より軽く、限界にも正直

標準の caffeinate コマンドは、人々が disablesleep を使う用途の大半にとって正しい道具です。グローバルなフラグを立てるのではなくアサーションを取り、パスワードも不要で、そして重要なことに、起動したプロセスと一緒に終わります。ターミナルのウィンドウを閉じれば、後始末も済みます。

限界はここです。caffeinate は、ふたを閉じたままMacBookを起こしておくことはできません。disablesleep フラグ以外にそれができるものはありません。つまり正直にまとめれば、caffeinate はふたを閉じたくなる瞬間までは安全な選択肢で、その先はまたグローバルなスイッチに戻ってしまう — きちんと塞ぐ価値があるのは、まさにこの隙間です。

同じ発想の、安全な形

フラグそのものが悪なのではなく、入れっぱなしが悪なのです。だから安全な形とは disablesleep を避けることではなく、その責任を引き受けることです。両者を分けるのは5つの性質です。

Perked のやり方

Perked はこのフラグを使い続けますが、暴発しない形にします。特権が要る部分は、macOS がシステムデーモンとして入れる小さなヘルパーです。ログイン項目で一度承認すれば、その後は二度と管理者パスワードを求められません。アプリは XPC でヘルパーと話し、セッションが本当に動いている間だけフラグを要求します。

自分で後始末する性質は、書き出しておく価値があります。シェルコマンドでは作れない部分だからです。スリープ防止が有効な間、アプリは30秒ごとにヘルパーへ心拍を送ります。ヘルパー側で90秒それが届かなければ — アプリが落ちた、強制終了された、何かが壊れた — ヘルパーは自分でスリープを元に戻します。Perked が死んだままMacを永久に起こし続ける、という状態は存在しません。

その周りに残りの4つの性質が並びます。コーディングエージェント(またはあなたが指定したプロセス)を検出したら入り、終われば切れる。電源接続または設定したバッテリー下限を条件にできる。Macが熱くなれば一時停止する。そして切り替えをすべて記録するので、実行が終わった理由を読み返せます。土台のフラグは同じなので、確認の仕方も同じです — セッション中と終了後に pmset -g | grep SleepDisabled を実行してみてください。

よくある質問

sudo pmset -a disablesleep 1 は何をしますか?

システム全体の電源管理フラグを立て、スリープを完全に無効にします — アイドルスリープ、ディスプレイスリープ、ふたを閉じたときのスリープのすべてです。root が必要で、アプリ単位ではなくマシン全体に効き、戻すまで再起動をまたいで残ります。

pmset disablesleep を元に戻すには?

sudo pmset -a disablesleep 0 を実行し、pmset -g | grep SleepDisabled で 0 と出ることを確認してください。Macを再起動しても消えません。

スリープを無効にするのは MacBook に悪いですか?

フラグ自体が壊すわけではありません。ただし安全網が外れます。起こされたままのMacは、バッテリーが減っても熱くなってもスリープできません。ふたを閉じた高負荷のノートには、熱を逃がす余地がほとんどありません。風の通る硬い面に置くこと、そして実際に作業している間だけにすること — 効いてくる違いはそこです。

caffeinate は安全な代わりになりますか?

多くの場合は、はい。プロセス単位のアサーションを取り、パスワードも不要で、結びついたコマンドやプロセスが終われば止まります。唯一の硬い限界は、ふたを閉じたままMacBookを起こしておけないことです。それができるのは disablesleep フラグだけです。

スリープを丸ごと無効にせずに、ふたを閉じたまま起こしておけますか?

別の設定では無理です。外部ディスプレイなしでふたを閉じたまま起こしておくことこそ、このフラグが司る領域だからです。変えられるのは適用範囲です。ジョブが動いている間だけ設定し、終わったらすぐ消す。そして監視しているアプリが死んだらスリープを戻す番犬を置く。Perked がしているのはそれです。

フラグを設定したアプリがクラッシュしたら?

生のシェルコマンドなら、何も起きません — 誰かが気づくまでフラグは立ったままです。Perked のヘルパーは30秒ごとの心拍を期待し、90秒それが途切れれば自分でスリープを有効に戻します。クラッシュや強制終了でも、通常の動作がひとりでに戻ります。

同じフラグの、対象を絞った形

自分で終わるふたを閉じたセッション — 電源と温度を意識し、アプリが死んでも自分で後始末します。買い切り €1

価格を見る →

関連ガイド

クラムシェルの詳しい手順: MacBookをふたを閉じたまま起こしておく →

より軽い道具をフラグごとに: macOS の caffeinate コマンド →

すでに何かがMacを起こしている? Macを眠らせていないのは何か →

← Perked に戻る