はじめに
screen コマンドは、複数のスクリプトをバックグラウンドで同時に実行する際に非常に便利です。これにより、それぞれのタスクに対してターミナルを開いたままにすることなく、長時間実行されるタスクを開始することができます。以下では、screen を使用してスクリプトをバックグラウンドで実行し、これらのセッションを管理する方法を説明します。

screen コマンドは、複数のスクリプトをバックグラウンドで同時に実行する際に非常に便利です。これにより、それぞれのタスクに対してターミナルを開いたままにすることなく、長時間実行されるタスクを開始することができます。以下では、screen を使用してスクリプトをバックグラウンドで実行し、これらのセッションを管理する方法を説明します。

~/project には、異なるタスクを実行する 3 つのスクリプトがあります。
環境内のターミナル(図の ① または ②)を開き、以下のコマンドを入力します。
ls ~/project

これら 3 つのスクリプトを同時に実行したい場合は、次のようにします。

ここでは、screen を使用して、これらのスクリプトをデタッチされたセッションで同時に実行します。
screen を使ってこれらのスクリプトをバックグラウンドで実行するには、-dmS オプションを使用します。
-d はセッションを開始し、すぐにデタッチします。-m は screen に新しいセッションを作成するよう強制します。-S はセッションに名前を付けて、簡単に参照できるようにします。1 つのターミナルを開き、スクリプトが格納されているディレクトリに移動します。そして、以下のコマンドを使用して、それぞれのスクリプトを別々の screen セッションで起動します。
screen -dmS task1./script1.sh
screen -dmS task2./script2.sh
screen -dmS task3./script3.sh
スクリプトを起動した後、さまざまなコマンドを使用してこれらの screen セッションを管理することができます。
screen -ls

このコマンドは、実行中のすべての screen セッションを表示します。
screen -r session_name
特定のスクリプトの出力を確認したり、そのスクリプトと対話したい場合は、このコマンドを使用してそのセッションに再接続します。session_name を、スクリプトを起動する際に指定した名前(例:task1、task2、または task3)に置き換えます。
セッションの確認が終了したら、Ctrl-a を押してから d を押すことで、セッションからデタッチし、バックグラウンドで実行を続けさせることができます。
セッションを終了するには、screen -r session_name を使用してセッションに再接続し、exit と入力するか、Ctrl-d を押します。
screen を使用して複数のバックグラウンドタスクを管理することで、特に長時間実行されるプロセスやバックグラウンドプロセスを扱う際に、作業フローを大幅に効率化することができます。デタッチされた screen セッションでスクリプトを実行することで、作業スペースをきれいに保ち、サーバーから切断したりターミナルを閉じたりしても、プロセスが中断されることなく続行されることを保証します。
screen を試してみて、どのように作業フローに最適に適合し、生産性を向上させることができるかを見つけてみましょう!