Linux, コマンド · 1 min read · Sep 15, 2025
Linux screen コマンド: 接続が切れてもプロセスを実行し続ける

皆さんもご存知だと思いますが、SSHでサーバーに接続していて、ソフトウェア(例えば新しいカーネル)をコンパイル中や、時間のかかる他の作業をしている最中に、突然接続が切れてしまい、未完了の作業を失ってしまうことがあります。これは非常に煩わしいことですが、幸いにも、screenという小さなユーティリティがあり、以前のセッションに再接続して作業を続けることができます。この短いチュートリアルでは、screenをこの目的で使用する方法を示します。
1 screen コマンドのインストール
screenのインストールは非常に簡単です。Debianでは、次のコマンドを実行します:
apt-get install screenUbuntuの場合は、sudoを使ってコマンドを実行します:
sudo apt-get install screenFedora、CentOS、SuSE、Mandrivaでも、yum / yast / urpmi /…を使ってインストールできるscreenパッケージがあります。
FedoraとCentOSでは
yum install screen2 screen コマンドの使用
screenを使用すると、現在のSSHターミナルで1つ以上のセッションを作成できます。次のコマンドを実行して開始します:
screenこれにより、現在のSSHターミナルにscreenセッションまたはウィンドウが作成されます(ただし、そのようには見えません):

スペースまたはリターンを押してコマンドプロンプトに移動します:

普通のSSHターミナルのように見えますね?
ここでは、screenを制御するために必要な最も重要なscreenコマンドを説明します。これらのコマンドは、通常のシェルコマンドと区別するためにCTRL aで始まります。
- Ctrl a c - 新しいscreenセッションを作成し、同時に複数のscreenセッションを使用できるようにします。
- Ctrl a n - n 番目のscreenセッションに切り替えます(複数使用している場合)。
- Ctrl a p - p 番目のscreenセッションに切り替えます(複数使用している場合)。
- Ctrl a d - screenセッションをデタッチします(プロセスを終了させずに - 続行します)。
すべてのタスクが完了したscreenセッションを閉じるには、次のように入力します:
exitさて、少し遊んでみましょう。screenウィンドウで、次のコマンドを実行します:
topこれは次のように見えるはずです:

次に、次のように入力して別のscreenセッションを作成します:
Ctrl a c新しい空のscreenセッションが開き、そこで次のコマンドを実行します:
tail -f /var/log/mail.logこれにより、メールログを継続的に確認できます:

次に、次のコマンドを実行して2つのscreenセッションをブラウズできます:
Ctrl a nまたは
Ctrl a pscreenセッションをデタッチして通常のSSHターミナルに戻るには、次のように入力します:
Ctrl a d通常のSSHターミナルに戻ったら、次のコマンドを実行して現在のscreenセッションのリストを取得します:
screen -lsThere are screens on:
2477.pts-0.server1 (Detached)
2522.pts-0.server1 (Detached)
2 Sockets in /var/run/screen/S-root.これらのセッションの1つに再接続するには、次のように実行します:
screen -r 2477.pts-0.server1ここで、2477.pts-0.server1はscreen -lsの出力からのセッションの名前です。
screenセッションを終了して終了するには、すべての現在のタスクを完了させ(topはqを入力して終了できます、tail -f /var/log/mail.logはCTRL cを入力して終了できます)、次のように入力します:
exitこれにより、別のscreenセッションに戻るか(複数使用している場合)、オープンなscreenセッションがない場合は通常のSSHターミナルに戻ります。
screenについてもっと学びたい場合は、次のコマンドを実行します:
man screen3 接続が切れた - どうすればいい?
では、screenセッションでカーネルをコンパイルしていると仮定しましょう。これは通常長い時間がかかりますが、突然接続が切れてしまいました。screenのおかげで、作業は失われません。接続が復旧したら、再度SSHでシステムにログインし、次のように実行します:
screen -ls第2章に示したように。結果から1つのセッション(例えば2477.pts-0.server1)を選択し、再接続します:
screen -r 2477.pts-0.server1正しいセッションを選択していれば、カーネルがまだコンパイル中であることがわかるはずです(その間に終了していなければ)ので、作業を続けることができます。
4 リンク
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。