SSH接続をtmuxやscreenで永続化する方法:VPSでの作業効率を向上
SSH接続が切れても作業を継続する方法を解説。tmuxとscreenの使い方、VPSでのセッション管理、永続化テクニックを紹介。
SSH接続が切れる問題とその解決策
SSHでリモートサーバーに接続して作業していると、ネットワークの不安定さやタイムアウト、クライアントのクラッシュなどで接続が切れることがあります。そのたびに作業が中断され、再ログインして同じ状態に戻すのは非効率です。そこで役立つのが tmux や screen といったターミナルマルチプレクサです。これらを使うと、SSHセッションを永続化し、切断後もプロセスを継続できます。
tmuxの基本とインストール
tmuxとは
tmux(ティーマックス)は、ターミナルを複数のウィンドウやペインに分割し、それらを1つのセッションとして管理できるツールです。セッションはバックグラウンドで動作し、SSHが切れてもプロセスは継続します。
インストール方法
sudo apt update
sudo apt install tmux
sudo yum install tmux # CentOS 7以前
sudo dnf install tmux # Fedora/CentOS 8以降
brew install tmux
よく使うコマンド
| コマンド | 説明 |
|---|---|
tmux new -s セッション名 | 新しいセッションを作成(名前付き) |
tmux ls | セッション一覧を表示 |
tmux attach -t セッション名 | セッションに再接続 |
Ctrl+b d | セッションからデタッチ(切断) |
Ctrl+b c | 新しいウィンドウを作成 |
Ctrl+b 数字 | 指定したウィンドウに切り替え |
実践例:tmuxで作業を永続化
tmux new -s work でセッション作成Ctrl+b d でデタッチtmux attach -t work で再接続 → 作業が継続中screenの基本とインストール
screenとは
screenはtmuxよりも歴史のあるターミナルマルチプレクサで、同様にセッションを永続化できます。
インストール方法
sudo apt install screen
sudo yum install screen
brew install screen
よく使うコマンド
| コマンド | 説明 |
|---|---|
screen -S セッション名 | 新しいセッションを作成 |
screen -ls | セッション一覧 |
screen -r セッション名 | セッションに再接続 |
Ctrl+a d | デタッチ |
Ctrl+a c | 新しいウィンドウ |
Ctrl+a 数字 | ウィンドウ切り替え |
screenの注意点
Ctrl+a [ でスクロールモード)exit または Ctrl+a k で強制終了tmuxとscreenの比較
| 機能 | tmux | screen |
|---|---|---|
| ペイン分割 | 柔軟(垂直・水平自由) | 制限あり(主に水平) |
| 設定ファイル | ~/.tmux.conf | ~/.screenrc |
| カスタマイズ性 | 高い | 中程度 |
| デフォルトのキーバインド | Ctrl+b | Ctrl+a |
| 人気 | 現在主流 | レガシーだが安定 |
どちらを選ぶべきか
VPSでの実践的な使い方
1. 自動アタッチの設定
SSHログイン時に自動的にtmuxセッションにアタッチするには、~/.bashrc に以下を追加します。
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default
fi
2. セッション名の管理
複数のプロジェクトでセッションを分けると便利です。
tmux new -s project1tmux new -s project23. 長時間ジョブの実行
例えば、データベースのバックアップやWebスクレイピングなど、長時間かかる処理をtmux/screen内で実行すれば、SSHが切れても安心です。
4. トラブルシューティング
tmux ls で状態を確認。デタッチされていない場合は tmux attach -d -t セッション名 で強制アタッチ。screen -wipe でクリーンアップ。*この記事は実際のVPS環境での構築経験に基づいています。料金・スペックは執筆時点のものであり、最新情報は各事業者の公式サイトでご確認ください。*
まとめ
SSH接続の永続化にはtmuxまたはscreenが必須のツールです。特にVPSで長時間の作業や監視を行う場合、これらを使いこなすことで作業効率が大幅に向上します。初心者にはtmuxをおすすめしますが、screenも安定して使えます。ぜひ日常のSSHワークフローに取り入れてみてください。