ホームへ
Toxin
JA

ターミナルの caffeinate コマンド:macOS 標準の方法と、その限界

macOS には最初から道具がある。費用はかからず、インストールもいらず、ひとつの仕事に対してはしばしば最良の選択だ。

このコマンドが作られた目的

上の最後の形が本来の考えだ。起こしておく仕組みが仕事にぶら下がる。仕事が走っているあいだマシンは起きていて、終われば同じ瞬間に両方が終わる。あとに覚えておくものが残らないので、どのアプリよりもきれいだ。

ターミナルでのビルド、スクリプト、コピーなら、何かを入れる理由はない。そこで作業する人はすでに正しい道具を持っている。

一つめの限界:ウインドウ

caffeinate はそのプロセスが生きているあいだ動く。ターミナルのウインドウを閉じればセッションは消える。しかも知らせは出ない。五つ並んだタブのどれかで始めたなら、一時間後には見つからない。

加えて、どこかで読める残り時間がない。-t 3600 なら一時間だとわかるが、その一時間がいつ始まったかはもうわからない。

二つめの限界:蓋

このコマンドはアサーションで働く。macOS では閉じた蓋は別の規則で、そこにアサーションは効かない。だから閉じた MacBook は caffeinate が動いていても眠る。

蓋を閉じたままマシンを走らせるには、もう一方のスイッチが必要だ。pmset disablesleep が切り替えるシステム設定である。それがまさに、Toxin の蓋モードが専用の小さなヘルパー経由で引き受けている仕事だ。

どちらがどの場面に合うか

ターミナルで走り、終わりのある仕事なら、caffeinate をその仕事にぶら下げる。入れるものも、忘れるものもない。

一日のうちに何度も起きていてほしいマシン — ビデオ会議、プレゼン、ブラウザのダウンロード、閉じた蓋 — には別の形が合う。メニューバーのアイコンで、状態が見え、時間が自分から終わる形だ。

実際に使う呼び出し

caffeinate -d
コマンドが動いているあいだ、画面を点けたままにする。
caffeinate -i
システムのスリープを防ぐが、画面は暗くなってよい。
caffeinate -t 3600
指定した秒数だけ起こしておき、そのあと自分で止まる。
caffeinate -i make
後ろにつけたコマンドが動いているあいだだけ起こしておく。一秒も長くしない。

短く並べると

  • caffeinate は標準で入っていて無料、仕事に結びつけるなら理想的。
  • 状態も残り時間も表示しない。
  • ウインドウを閉じると生き残らない。
  • 閉じた蓋には効かない。そこにはシステム設定が必要。

よくある質問

両方を同時に使えますか。

使えます。複数のアサーションは互いに邪魔しません。少なくとも一つ有効なあいだマシンは起きていて、最後の一つが消えたときに眠ります。

caffeinate に sudo は必要ですか。

不要です。コマンドはログイン中のユーザーの名前でアサーションを立てます。システム設定に手を入れて対応する権限を求めるのは pmset disablesleep だけです。

標準の方法は良いもので、限界が二つはっきりしています。Toxin はその外側の場面のために作られています。macOS 用のメニューバーアプリで、まだ Mac App Store にはありません。

ホーム