iTerm2のセッション復元とtmuxの使い分け
iTerm2のセッション復元機能
iTerm2はMacをシャットダウンしても、ウィンドウ・タブ・ペインのレイアウトを復元できる機能を持っている。
Preferences → General → Startup で設定可能。
何が保持されるか
| 項目 | 保持される |
|---|---|
| ウィンドウレイアウト・タブ構成 | ✅ |
| 作業ディレクトリ | ✅ |
| ターミナルの表示内容(スクロールバック含む) | ✅ |
| 実行中のプロセス(SSH, vim等) | ❌ |
| シェルの状態(環境変数, history等) | ❌ |
Window Restoration Disabledの警告が出たら
macOS側の設定がiTerm2のウィンドウ復元を妨げている場合、以下の警告が表示される。
“System window restoration has been disabled, which prevents iTerm2 from respecting this setting.”
解決方法
System Settings → Desktop & Dock を開き、「Close windows when quitting an application」を オフ にする。
これはmacOS全体の設定なので、iTerm2以外のアプリ(Safari、Finderなど)も終了→再起動時に前回のウィンドウが復元されるようになる。
tmuxはローカルでは意味がない
tmuxはプロセスをセッションとして管理し、接続を切っても維持できるツール。 ただしローカルのMac上で動かしている場合、Macをシャットダウンするとtmuxセッションも死ぬ。
tmuxが本領発揮するケース
リモートサーバー(VPS/EC2等)上でtmuxを動かす場合:
- Mac側はSSHで接続するだけ
- Macを閉じても・落としてもサーバー上のセッションは生き続ける
- 再接続すれば作業が再開できる
結論
| やりたいこと | 解決策 |
|---|---|
| Mac再起動後にiTerm2のレイアウトを復元したい | macOS設定でウィンドウ復元を有効化 |
| Mac再起動後もプロセスを生かし続けたい | リモートサーバー上でtmuxを使う |
| ローカルでプロセスを維持したい | 不可能(OSが落ちればプロセスも死ぬ) |