Linuxターミナルで長時間実行されているタスクが失われたSSHセッションや閉じたターミナルウィンドウによって中断されたことがあるなら、その苛立ちがどれほどか分かるでしょう。幸いなことに、Linuxサーバーは、バックグラウンドでターミナルセッションを実行し、それから切り離し、後で再接続できる強力なユーティリティscreenを提供しています — 切断後でも可能です。

このガイドでは、インストールから一般的なコマンドまで、screenの基本的な使い方を説明します。

screenとは?

screenは、1つのウィンドウ内で複数のターミナルセッションを作成できるターミナルマルチプレクサです。セッションから切り離し、バックグラウンドで実行させたままにし、後で再接続することができるため、リモート作業や持続的なプロセスの実行に最適です。

screenのインストール

ほとんどのLinuxディストリビューションでは、screenはデフォルトのパッケージマネージャを通じて利用可能です。

Debian/Ubuntuの場合:

sudo apt update
sudo apt install screen

CentOS/RHELの場合:

sudo yum install screen

Fedoraの場合:

sudo dnf install screen

基本的な使い方

Screenセッションの開始

screen

このコマンドは新しいscreenセッションを開きます。ウェルカムメッセージとターミナルプロンプトが表示されます。

セッションに名前を付ける

screen -S mysession

-Sを使用して、後で簡単に参照できるようにセッションに名前を付けます。

切り離しと再接続

セッションから切り離す

screenセッション内で、次のキーを押します:

Ctrl + A, then D

これにより、セッションが切り離され、バックグラウンドで実行され続けます。

アクティブなセッションの一覧表示

screen -ls

これにより、現在のscreenセッションのリストが表示されます:

There are screens on:
12345.mysession (Detached)

セッションに再接続する

screen -r mysession

または、セッションIDを使用します:

screen -r 12345

複数のウィンドウで作業する

screenセッション内では、複数のターミナルウィンドウを作成できます。

  • 新しいウィンドウを作成: Ctrl + A、次にC

  • 次のウィンドウに切り替え: Ctrl + A、次にN

  • 前のウィンドウに切り替え: Ctrl + A、次にP

  • すべてのウィンドウを一覧表示: Ctrl + A、次に ” (ダブルクォート)

各ウィンドウは独自のシェルを実行し、切り離すとすべてバックグラウンドで実行され続けます。

ログと出力

screenセッションから出力をログに記録するには:

  1. screenセッションを開始または入ります。

  2. ログ記録を有効にする:

    Ctrl + A, then H

    これにより、現在のディレクトリにscreenlog.0というファイルが作成されます。

セッションを閉じる

セッションを終了するには、screenターミナルで単にexitと入力します。これにより、シェルが終了し、セッションが閉じられます。

複数のウィンドウがある場合は、すべてのウィンドウを終了するか、次のようにしてセッション全体を閉じる必要があります:

exit

各ウィンドウで。

高度なヒント

  • スクロールバック: Ctrl + A、次にEscを押すと、コピー/スクロールバックモードに入ります。

  • セッションの共有: 複数のユーザーがマルチユーザーモードを使用して同じセッションに接続できます。

  • カスタム設定: ~/.screenrcを変更して、個人のショートカットや設定を行います。

結論

screenは、長時間実行されるタスクを管理したり、SSHを介してリモートで作業したりするLinuxユーザーにとって必須のツールです。プロセスを生かし、アクセス可能にするその能力は、開発者、システム管理者、そして愛好者にとって非常に貴重です。

さらに多くの機能を知るにはman screenを探求し、ターミナルでよりスマートに作業を始めましょう!