Screen コマンドを使用すると、実行時間の長いプロセス (またはプログラム、またはシェル スクリプト) をセッションから切り離すことができます。
セッションが切断されると、最初に画面から開始されたプロセスは引き続き実行され、画面によって管理されます。その後、後でセッションを再接続することができますが、端末は元の状態のままです。
この記事では、screen コマンドを使用して仮想端末セッションを管理する方法を例を挙げて説明します。
画面コマンドの例 1:コマンド (またはシェル スクリプト) を実行し、画面を切り離します
通常、コマンドから以下に示すように、コマンドまたはシェル スクリプトを実行します。
$ unix-command-to-be-executed $ ./unix-shell-script-to-be-executed
代わりに、以下に示すように screen コマンドを使用してください。
$ screen unix-command-to-be-executed $ screen ./unix-shell-script-to-be-executed
screen コマンドを使用したら、次のいずれかの方法で端末から切り離すことができます。
画面の切り離し方法 1:CTRL+A d を使用して画面を切り離す
コマンドの実行中に CTRL+A を押します 続いて d 画面を切り離します。
画面の切り離し方法 2:-d オプションを使用して画面を切り離す
コマンドが別の端末で実行されている場合は、次のようにコマンドを入力します。
$ screen -d SCREENID
Screen コマンドの例 2:実行中のすべての screen プロセスを一覧表示する
screen -ls を使用して、実行中のすべての画面プロセスを一覧表示できます コマンド。
例:
ターミナル 1 で次の操作を行いました:
$ screen ./myscript.sh
ターミナル 2 から、すべての画面プロセスのリストを表示できます。以下に示すように、ターミナル 2 から取り外すこともできます。
$ screen -ls There is a screen on: 4491.pts-2.FC547 (Attached) 1 Socket in /var/run/screen/S-sathiya. $ screen -d 4491.pts-2.FC547 [4491.pts-2.FC547 detached.]
スクリーン コマンドの例 3:必要に応じてスクリーンを接続する
以下に示すように、画面 ID を指定することで、いつでも画面をアタッチできます。 「screen -ls」コマンド出力から画面 ID を取得できます。
$ screen -r 4491.pts-2.FC547
画面コマンド使用シナリオ 1
1 つの端末にしかアクセスできない場合は、screen コマンドを使用して 1 つの端末を複数に多重化し、複数のコマンドを実行できます。 screen コマンドの使用法と SSH ControlMaster の使用法を組み合わせると、非常に便利な場合もあります。
画面コマンド使用シナリオ 2
チーム環境で作業している場合、同僚のデスクに歩いて行き、いくつかのことを明確にすることがあります。その時点で、必要に応じて、screen コマンドを使用してマシンからプロセスを開始し、完了したら切り離すこともできます。後でデスクに戻ったら、ログインして画面を端末に接続できます。