ターミナルセッション
SnapVM のターミナルは、マシン内のエージェントが公開する PTY にブラウザ UI から接続する仕組みです。
- ブラウザが SnapVM API にマシンへの認可済みアクセスを要求します。
- コンソールがターミナルゲートウェイ経由で WebSocket 接続を開きます。
- ゲートウェイがマシン内のエージェントへ到達します。
- エージェントが PTY セッションを開始または既存セッションへ接続します。
- ターミナルの入出力がブラウザとセッション間でストリーミングされます。
プロダクトで切り替えが提供されている場合、ターミナル UI は xterm.js や実験的なレンダラを利用できます。
ブラウザが切断されても、セッションがすぐ破棄されるとは限りません。ターミナルを開き直すと同じセッションに attach し、作業を続けられます。直近の出力はバッファから再生されるため、文脈を失いにくくなります。
これはハイバネーションとは別です。ランタイムがスリープするとインメモリのプロセスは停止する場合があります。自動復帰させたいプロセスにはサービスを使います。
マルチアタッチ
Section titled “マルチアタッチ”有効な場合、複数のブラウザタブが同じセッションに attach できます。同じセッションに接続している全員が同じ出力を見て、同じシェルへ入力します。
ペア作業、デモ、サポートに便利です。独立した作業には別セッションを作成し、履歴やプロセス状態の衝突を避けてください。
複数セッション
Section titled “複数セッション”1 つのマシンで複数のセッションを使えます。用途ごとに分けると扱いやすくなります。
- 開発コマンド用
- ログ確認用
- データベース確認用
- 一時的な実験用
最大セッション数はデプロイで制限される場合があります。
ターミナルとサービスの使い分け
Section titled “ターミナルとサービスの使い分け”| ワークロード | 適したもの |
|---|---|
| ツールのインストール | ターミナル |
| ファイル編集 | ターミナルまたは Code Server |
| ログ確認 | ターミナル |
| 一時的な開発サーバー | ターミナル |
| 復帰後もサーバーを動かす | サービス |
| エージェントを自動起動する | サービス |
| 失敗時に再起動する | サービス |