常駐システムはいつ接続しても応答しなければならない。そのためには機械が眠ってはいけない。だが、どの機械も節電のため、標準では眠るように設計されている。この章では四重に眠りを防ぎ、目に見える設定とコマンドラインの両方から、確実に起きているかを確認する。
§ 00 · 眠らないことが第一
外からつなごうとしても機械が応答しない。リモート開発で最もよくある最初の挫折だ。十中八九、機械が眠っている。
ノートパソコンは眠るために作られている。ふたを閉じれば眠り、しばらく触らなければ眠る。節電のための美徳だ。しかし常駐システムにとって、眠りは美徳ではなく欠陥だ。遠くから手を伸ばした時に眠っていたら、それはもうシステムではない。
だから最初の課題は明確だ。機械を眠らせないこと。そして、こちらのほうが重要だが、眠っていないと信じるのではなく、眠っていないと確認すること。設定画面のスイッチ一つで終わったと信じるな。リモートで信頼はぜいたくだ。
| 区分 | 何が起きるか | リモートへの支障 |
|---|---|---|
| 画面オフ | モニターだけが休む。節電するだけ | なし。画面が消えていても遠隔作業は続く |
| 本体のスリープ | 機械全体が止まる | 致命的。外から接続できない。防ぐのはこちら。 |
§ 01 · 四重に眠りを防ぐ
眠りを防ぐ方法は一つではない。一つだけに頼れば、それが外れた時に機械は静かに眠る。だから層を重ねる。次の四重なら、一層が外れても次の層が支える。
目に見える設定が二層、見えないコマンドラインが二層。画面が消えることと本体が眠ることは違うとだけ覚えればよい。画面は消えてよい。本体さえ起きていれば遠隔作業は続く。
1 · システムの電源設定(GUI) · 最初に手を入れる場所。システムのスリープ時間を「なし」にし、画面のオフだけ許可する。本体は常時稼働、画面は節電。この二つを分けることが核だ。
2 · 常駐するスリープ防止アプリ(GUI) · 設定だけでは不安なら、画面上で常に眠りを防ぐ道具を一つ起動する。ワンクリックでオン・オフできる、目に見える安全網。
3 · コマンドラインでのスリープ抑止(ターミナル) · スクリプトでも眠りを防げる。長いビルドやデプロイなど、無人で長く動かす時に、作業が生きている間だけ眠りを抑える方法。GUIとは独立しているので二重にかかる。
4 · ネットワーク信号での復帰(ターミナル) · 万一眠っても、遠隔接続が来たら起きる設定。眠らせないことと、眠っても起こすこと。両方をかければ死角はない。
§ 02 · 信じずに測れ
設定はすべてかけた。今、機械は起きているか。大半の人はここで止まる。設定したから大丈夫だろう、と。この方法論の言葉でいえば、それは自白であって証拠ではない。
証拠はコマンドラインにある。電源管理の状態を直接尋ねると、機械は今眠る設定なのか、画面だけ消す設定なのか、何が眠りを防いでいるのかを数字で答える。私はそう尋ねて確認した。システムのスリープは「なし」、画面だけ節電、スリープ防止が実際にかかり、ネットワーク信号で復帰する設定。画面は消えていても本体は完全稼働中だ。
これが方法論全体を貫く姿勢だ。設定画面のスイッチは「やる」という約束で、コマンドラインの応答は「やっている」という証拠だ。約束と証拠は違う。長くリモートを維持する人は、約束を信じず証拠を測る。
記事を読む: sass.studio.