2026 공유 원격 Mac 세션 지속성: tmux·격리·선점 회피 매트릭스
공유 원격 Mac에서 VPN 끊김·동시 쓰기·CI/인간 경합이 “재현 불가”로 보입니다. tmux는 세션 지속성만 주고 격리는 아닙니다. 아래에 충돌 시나리오·SSH 비교표·결정 매트릭스·최소 설정·권한 절차·큐·락 FAQ·선점 회피 체크리스트를 둡니다. 수치는 빌드 큐·flock FAQ와 맞추세요.
tmux vs 순수 SSH 세션 비교표
| 관점 | 순수 SSH 세션 | tmux(팀 정책·이름 규칙) |
|---|---|---|
| 끊김 생존 | SIGHUP 취약 | attach -t 복귀 |
| 가시성 | 단일 스트림 | 페인·스크롤백 |
| 감사 | 소유자 불명 | 세션명=티켓·레인 |
| CI 격리 | 동일 유저=동일 파일 | 계정·경로 분리 필요 |
| 리스크 | 네트워크 유실 | 낡은 env·xcode-select |
tmux는 전송 내구성일 뿐입니다. 접속·권한 경계는 SSH·VNC 권한 격리 FAQ를 함께 보세요.
세션 지속성 결정 매트릭스
| 신호 | 우선 선택 | 에스컬레이션 |
|---|---|---|
| VPN 불안 | tmux+keepalive | attach 명령 위키 고정 |
| 공유 캐시 | 직렬+flock |
노드·캐시 분리 |
| GUI+헤드리스 | 노드 분할 | 시뮬 전용 임대 |
| 임시 디버그 | break-glass | 사후 로테이션 |
최소 tmux 설정 파라미터
/etc/tmux.conf 또는 ~/.tmux.conf에 팀 베이스라인을 고정합니다.
mouse on·history-limit 50000default-terminal "screen-256color"(또는 tmux-256color)aggressive-resize on·detach-on-destroy off
네이밍: tmux new -s 이니셜-티켓 등—풀에서 무제목 금지, 래퍼 스크립트 권장.
인용: ClientAliveInterval/ServerAliveInterval을 Runbook에 tmux와 병기.
사용자·디렉터리 권한 격리 절차
- CI용·인간용 OS 계정 분리—CI가 개인 홈 금지
- 공유 트리는 그룹·
2770·umask 027 - 사용자·worktree별 루트로 경로 분리
- ACL은 최소; 스테이징을
/tmpworld-writable에 두지 않기 namei -l검증·월간 퍼미션 드리프트 점검
쿼터·대기 숫자는 공유 Mac 풀 FAQ와 통일.
빌드 큐·파일 락 임계 FAQ
왜 묶나: 지속형 셸이 락·시뮬·키체인을 길게 쥡니다—셸·큐 Runbook 문구를 일치시키세요.
보류 상한: 레인·전역 약 20건 부근 명시 실패. 상세는 빌드 큐·flock FAQ.
flock -w: 잡 타임아웃보다 짧게; 인터랙티브 30~120초·deps 구간 120~300초 출발.
공존: CI는 바쁜 자원에서 flock -n 우선, 사람은 짧은 -w만.
알림: 중앙값 대기 ~15분 지속·반복 락 타임아웃 시 노드 추가 검토.
빌드 세션 선점 회피 체크리스트
- ☐ 세션 이름·attach 문서 공개, 익명 tmux 금지
- ☐ 레인명=Runner 라벨·동시성 그룹 1:1
- ☐ 락 시간 상한·멈춤 시 Runner·PID·경로 로그
- ☐ 월간 고아 세션·시뮬·777 드리프트 점검
- ☐ GUI·서명 충돌 반복 시 노드 추가가 창 추가보다 우선
요약·노드 확장·다음 단계
tmux는 끊김 완충, 그룹·경로·큐는 안전 마진입니다. 경합 종료는 직렬·추가 노드입니다. 설정·숫자를 YAML=Runbook으로 동기화하세요.
홈(로그인 불필요) · 요금·플랜 · 도움말 · 블로그
세션 표준화—또는 노드 하나 더
SSH·VNC 풀에 맞춰 Runbook에 tmux·flock·큐를 동기화하고, 레인은 멀티 노드로 나누세요.