共有ノードの衝突シーン
対話は TTY 安定、CI は無人・固定パス。同居すると孤児プロセス・重複依存・Simulator 競合が増えます。先奪はロックや優先ジョブが対話前提を壊すこと—特権はレーン・ラベル・別ノードでだけ。多機の例はマルチノード協調。
- 共有キャッシュ同時書き
- 無名/共有 tmux の混線
- GUI 署名とヘッドレス CI の時間帯衝突
tmux と裸の SSH セッション比較表
| 観点 | 裸の SSH セッション | tmux(命名・チーム方針あり) |
|---|---|---|
| 切断耐性 | 弱い(SIGHUP) | 強い(attach -t) |
| 可視性 | 一画面 | ペイン・履歴 |
| 協調 | 所有者不明瞭 | セッション名で対応付け |
| CI 隔離 | 同ユーザーで弱い | パス分離なしでは弱い |
| リスク | 切断で損失 | 古い環境が残る |
tmux=耐久性、分離=ユーザーとパス。
セッション永続化の判断マトリクス
| シグナル | 優先する対応 | エスカレーション |
|---|---|---|
| 回線不安定 | tmux+keepalive | attach を文書化 |
| 単一共有キャッシュ | 直列+flock |
第二ノード |
| GUI と CI 同居 | 分割または時間窓 | Simulator 専用機 |
| 本番相当の臨時調査 | ブレイクグラス+短命 | 事後ローテーション |
最小 tmux 設定パラメータ
~/.tmux.conf または /etc/tmux.conf に共通最小セット。
mouse on/history-limit 50000/default-terminal screen-256coloraggressive-resize on/detach-on-destroy off
命名必須:new -s チケット 等、無名禁止。SSH は ClientAlive と ServerAlive を併用。
ユーザーとディレクトリの権限隔離手順
- CI と人間で OS ユーザーを分離。
- 共有木はグループ+
2770、umask 027。 - 作業ルートを人/リポごとに交差させない。署名・VNC は権限隔離 FAQに合わせる。
namei -l で検証、月次で 777 逸脱を掃く。
ビルドキューとファイルロックの閾値 FAQ
- tmux と flock を同じ Runbook に
- 長寿命シェルは暗黙資源を掴みやすい。シェル方針=キュー方針。
- 待ち深度・ロック
- レーン待ちは約20件前後で飽和可視化。人手
flock -wは三十〜百二十秒帯、重い共有更新は百二十〜三百秒、いずれもジョブ上限より短く。詳細 FAQ。 - いつ増設か
- 待ち中央値が業務時間に約15分超が続く、ロック多発ならノード追加。CI は
flock -nで早逃げも可。
ビルドセッション先奪回避チェックリスト
- 命名規約+無名禁止、Runner ラベルとレーン一致
- ロック固まりは PID・パス・ID をログ化
- 月次:孤児 tmux・Simulator・緩い権限
- 週次再発なら第二ノード優先