一つのVPN作業のためにMacを起こしておく——VPN自体のためではない
caffeinate が保持するのは包んだコマンドに対する電力要求だけです。トンネルの鍵を更新したり、セッションを延ばしたり、閉じた蓋を乗り越えたりはできません。
離席している間に転送を一つ終わらせたい——そのとき疑われるのは当然、眠ったMacです。caffeinate はまさにその時間帯に電力要求を保持できますが、見た目よりずっと狭い道具です。コマンドの実行中にアイドルスリープを防ぐだけで、VPNセッションを生かし続けはしませんし、真夜中に切れる資格情報から転送を救うこともありません。届く範囲がどこまでかを知っていることが、次の失敗を間違った層のせいにしないための条件です。
その要求が実際に保持するもの
このユーティリティは、包んだプロセスが生きている間だけ要求を開いたままにするよう電力管理システムに頼みます。プロセスが終了すれば要求も一緒に消えます。この寿命こそが役に立つ部分です:マシン全体の設定を切り替えて、あとで戻すのを覚えておこうと頼る必要はありません。
フラグはそれぞれ別の要求を選びます。-i はシステムのアイドルスリープを防ぎます。-d はディスプレイのスリープを対象にし、-s はシステムが許す場面でシステムスリープを対象にします。どれも「起きたまま」という包括的な約束ではなく、画面のロックを解除したり蓋を閉じるのを無効にしたりもしません。実際に見た中断に合うものを選んでください。
この区別は、Macが「それでも眠った」という報告を受けたときに効きます。問うべきは、どの要求を、どれだけの時間、何がきっかけで眠ったのかです。電力管理は複数の入力を評価しており、要求が覆うのはそのうち一つにすぎません。
セッションを飾るのではなく、作業を包む
caffeinate -i /usr/bin/ssh [email protected]
これはSSHクライアントが動いている間ずっとアイドル要求を保持します——バックグラウンドで動かすのではなく包む意味はまさにそこにあります。VPNプロファイルには触れず、keepaliveも送らず、トンネルの設定も何も変わりません。
時間を区切るなら、期間フラグが正直な形です:
caffeinate -i -t 1800
作業が早く終わったら、その呼び出しは通常の割り込みで止めてください。包んだプロセスをいくつもバックグラウンドに残し、あとで同じ名前のプロセスを全部殺して片付けようとしないこと——残しておきたかったものまで巻き添えにします。
スリープは原因の一つであって、原因そのものではない
アイドルスリープを防いでも、リストから外れる中断は一つだけです。意図的なスリープ命令、閉じた蓋、電源断、管理者が設定したポリシーには勝てません。これらは別々の判断であり、ユーザーレベルの要求がそれらに勝つと期待するから「この道具は使えない」という結論になるのです。
ディスプレイのスリープと画面ロックも別物です。Macは画面を消したまま起きていられますし、作業が続いていてもロックはかかります。必要なのが照らされた画面なら別のフラグですし、必要なのがロックされていない画面ならどのフラグでも実現できません。スイッチを選ぶ前に、三つの結果のどれが本当に必要かを言ってください——名前が違うだけで同じ挙動、というわけではないのです。
VPNセッションは自分の時計を持つ
IPsecやTLSのトンネルは両端が合意したスケジュールで鍵を更新し、サーバーはクライアントの活動とは無関係にセッションの最大寿命を強制できます。資格情報は切れます。ノートPCが起きていることとは無関係な理由で、アクセス回線が落ちることもあります。どれも電力要求には関心がありません。
ですから、Macが明らかに起きているのに実用的な通信が失敗したとき、期間を延ばすことは説明でも修理でもありません。失敗を読んでください:鍵更新のエラー、認証の期限切れ、回線の喪失はトンネルのログで見え方が違い、それぞれに固有の対処があります。
耐久性はリモートホストに置く
ローカル接続を失うと何時間もの作業が無駄になるなら、答えは向こう側にあります。ターミナルマルチプレクサはSSHが切れてもサーバー上でセッションを生かし、ジョブシステムはセッションが終わっても作業を生かします。どちらもノートPCの電源状態に依存しません。
それは別の障害境界であり、長い作業ではこちらが重要です。両方が真のときだけ組み合わせてください:作業のローカル部分のためにマシンは起きたままでなければならず、リモート部分は切断を生き延びなければなりません。そのうえで、二つ目のターミナルから再接続し、ジョブがまだ動いていることを確認してください。
使った要求と、それがいつ終わるかを書き留めてください。短命な運用上の選択なら問題ありません;説明のない常設の選択は、半年後に誰もなぜMacが眠らないのか覚えていないサポートチケットになります。