screenコマンドの使い方!仮想ターミナルでプロセスを維持する方法を初心者向けに解説
生徒
「Linuxで作業している途中に、ターミナルを閉じたら作業が消えてしまいました…どうにかなりませんか?」
先生
「それはよくあることですね。そんなときはscreenコマンドを使うと、作業を維持したままにできます。」
生徒
「ターミナルを閉じても動き続けるんですか?」
先生
「その通りです。仮想ターミナルという仕組みで、作業を裏側で継続できます。初心者でも使えるので、一緒に覚えていきましょう。」
1. screenコマンドとは?
screenコマンドとは、Linuxで仮想ターミナルを作成して、処理を継続させるための便利なコマンドです。
通常、ターミナル(黒い画面)を閉じると、その中で動いていたプログラムも終了してしまいます。しかし、screenを使えば、ターミナルを閉じても処理が裏で動き続けるようになります。
例えば、大きなファイルのダウンロードや長時間かかる処理をしているときに、途中で接続が切れても安心です。
2. 仮想ターミナルとは?初心者向けに解説
仮想ターミナルとは、簡単に言うともう一つの作業用画面を裏で作る仕組みです。
例えるなら、パソコンの中に「もう一つの作業部屋」を作るイメージです。
- 普通のターミナル → 作業をしている部屋
- screen → 別の部屋を作って、そこに作業を置いておく
この部屋は、あとから戻ることができるので、作業を途中で止める必要がありません。
3. screenコマンドの基本的な使い方
まずは、screenコマンドを実行してみましょう。
screen
[screenが起動して新しい画面になります]
これで、新しい仮想ターミナルが作成されます。
この中でコマンドを実行すると、通常のターミナルとは別の環境で動きます。
例えば、長時間かかる処理を実行してみます。
sleep 100
[100秒待機する処理が実行される]
この状態で画面を離れても、処理は続きます。
4. screenから一時的に離れる方法(デタッチ)
screenの大きな特徴は、作業を残したまま画面を離れられることです。これをデタッチといいます。
操作方法は以下の通りです。
Ctrl + a → d
[screenから離れて元のターミナルに戻る]
これで、screenの中で動いている処理はそのままに、元の画面に戻ることができます。
ターミナルを閉じても、処理は裏で継続します。
5. screenに戻る方法(アタッチ)
デタッチしたscreenに戻るには、以下のコマンドを使います。
screen -r
[元のscreen画面に復帰する]
これで、途中だった作業画面に戻ることができます。
もし複数のscreenがある場合は、一覧を確認できます。
screen -ls
There is a screen on:
1234.pts-0.hostname (Detached)
番号を指定して戻ることも可能です。
screen -r 1234
[指定したscreenに接続]
6. screenの終了方法
screenを完全に終了したい場合は、その中で以下のコマンドを実行します。
exit
[screenが終了して元の画面に戻る]
または、Ctrl + dでも終了できます。
終了すると、そのscreen内の処理も停止しますので注意してください。
7. 名前をつけてscreenを管理する
複数のscreenを使う場合は、名前をつけると管理しやすくなります。
screen -S mysession
[「mysession」という名前のscreenを作成]
名前を指定して再接続することもできます。
screen -r mysession
[指定した名前のscreenに戻る]
これにより、どの作業かすぐに分かるようになります。
8. screenとバックグラウンド実行の違い
Linuxにはバックグラウンド実行という機能もありますが、screenとは少し違います。
- バックグラウンド実行 → コマンドだけを裏で動かす
- screen → 作業画面ごと保存する
つまり、screenは「作業環境そのものを保存できる」点が大きな特徴です。
途中の状態をそのまま再開できるため、初心者にも扱いやすい方法です。
9. よくある使いどころと活用例
screenは以下のような場面で非常に役立ちます。
- 長時間の処理を実行するとき
- リモートサーバーで作業するとき
- 通信が切れる可能性がある環境
例えば、ファイルをダウンロードする場合です。
wget http://example.com/largefile.zip
[ファイルのダウンロードが開始される]
この状態でデタッチしても、ダウンロードは続きます。
あとで再接続すれば、進行状況を確認できます。