目次(まとめ)

◾️ screenコマンドを使って、1つのターミナルウィンドウで複数のプロジェクトを取り扱う

◾️ サーバーからログアウト後にも計算が維持される

こんにちは、みっちゃんです。

今回の記事では「Macのターミナルを使って作業しているが、1つのウィンドウで複数のプロジェクトを取り扱いたい」「計算サーバで計算させているが、ログアウト後にも計算を維持させたい」という方向けに、"screen" というコマンドを紹介します。

screenコマンドを使って、1つのターミナルウィンドウで複数のプロジェクトを取り扱う

例えば、"project_1" というプロジェクトと、"project_2" というプロジェクトがあり、どちらも並行して作業を進めたい場合、みなさんはどのように進めますか?

一番簡単な方法は「ターミナル」のウィンドウをそれぞれのプロジェクトに対して準備して、それぞれのウィンドウでそのプロジェクトの作業を行うという方法です。

しかし、この場合には、ターミナルウィンドウを2つ準備する必要が出てきます。

今回紹介する "screen" コマンドは、Macに標準で用意されているコマンドで、1つのウィンドウで、複数の仮想画面を準備することができます。

使い方は簡単です。

例えば、"project_1" という仮想画面を準備したい場合には、以下のように実行します。

$ screen -S project_1

実行すると(気づかないかもしれませんが)仮想画面に入っています。

仮想画面から出るときは、"control" を押しながら "a" と "d" を押します。

$ screen -S project_1
[detached]

そうすると、上のように "detached" (取り外した)という表示が出て、仮想画面から出て、もとのウィンドウに戻っています。

同じように、"project_2" についても同じように仮想画面を準備します。

$ screen -S project_2

こちらも仮想画面から出ると、以下のように表示されます。

$ screen -S project_2
[detached]

このように、複数の仮想画面を同じウィンドウ内に作ることができます。

作成した仮想画面の一覧は、以下のように確認することができます。

$ screen -ls
There are screens on:
	26192.project_2	(Detached)
	25927.project_1	(Detached)

すでに作成している仮想画面に入るためには、以下のように実行します。

$ screen -r project_1

または、以下のように数字を指定しても入れます。

$ screen -r 25927

※今回の例では、仮想画面を2つ準備しているので、その名前/数字を指定する必要がありますが、1つしか準備しない状況では「$ screen -r」だけでOKです。


"project_1" という仮想画面にいる状態で、仮想画面の一覧を確認すると、以下のように表示されます。

$ screen -ls
There are screens on:
        26192.project_2 (Detached)
        25927.project_1 (Attached)

"project_1" という仮想画面にいる状態で見ているので、"project_1" については "attach" 状態になっています。

仮想画面を終了するためには、以下のように "exit" と入力するか、"control" を押しながら "d" を押します。

$ exit

"[screen is terminating]" と表示されれば成功です。

"screen -ls" で、"project_1" が消えていることも確認できます。

サーバーからログアウト後にも計算が維持される

"screen" コマンドは、計算サーバを利用している方にも有用です。

なぜなら、一般に、計算サーバに接続して、何らかの計算を行う場合に、接続を切ってしまうと、計算も途中で終わってしまう問題があるからです。

そこで、"screen" コマンドにより作成した仮想画面の中で計算を行うようにすれば、計算サーバとの接続を切ったとしても、(計算サーバの電源が落ちない限り)計算は維持されます。

サーバ初心者の方は、ぜひ活用してみてください。