【Linux】ジョブ管理(バックグラウンドとフォアグラウンド)について

Linuxでは、ジョブ管理により、複数のタスクを同時に実行することができます。この記事では、プロセスのバックグラウンド化とフォアグラウンド化、バックグラウンドプロセスの管理について確認します。
スポンサーリンク

バックグラウンドとフォアグラウンド

プロセスのバックグラウンドフォアグラウンドは、複数のタスクを一度に管理するための概念です。
作業中のタスクを一時停止して、別の作業を行うことで、あるタスクの終了を待ってから別のタスクを開始しなくてもよくなります(デスクトップのウィンドウを最小化したり最大化したりするのに似ています)
プロセスをバックグラウンドにすると、他の作業をしている間、そのプロセスは待機状態となり、フォアグラウンドに戻すと、ユーザのコマンドを受け付けるようになります。
シェルでコマンドを実行すると、そのコマンドはフォアグラウンドでプロセスとして実行されます。
Ctrl+Zを押すとプロセスをバックグラウンドにすることができ、プロセスは一時停止して待機状態になります。
プロセスをフォアグラウンドに戻すには、”fg “コマンドにジョブ番号を続けて使用します。
複数のファイルを参照しながら、設定ファイルの編集する場合など、並行してタスクを実行する際に便利です。
スポンサーリンク

動作確認(nanoエディタを使用)

Ubuntu Serverにデフォルトでインストールされているテキストエディター「nano」を使用して、プロセスのバックグラウンド化とフォアグラウンド化の手順を確認します。
新しいシェルターミナルを開きます。
コマンド「nano」の後に、編集したいファイル名を入力します。例えば、「nano myfile1.txt」です。

ファイルにテキスト(今回は、myfile1)を入力し、編集中のまま、バックグラウンドへ持っていきたいとします。キーボードショートカットのCtrl+Tを入力します。

nanoでコマンドの実行ができるようになります。このあと、バックグラウンドにするには、Ctrl+Zを押します。

これでこのプロセスが一時停止され、シェルに戻ります。

プロセスがバックグラウンドで待機されているかどうかは、「jobs」コマンドで確認できます。これにより、バックグラウンドで実行されているジョブのリストが表示されます。

プロセスをフォアグラウンドにするには、「fg」の後に「jobs」コマンドでリストアップされたジョブ番号を続けて入力します。上記の例だと、ジョブ番号は1です。「fg 1」と入力します。

これでプロセスがフォアグラウンドに戻され、作業を続けることができます。

プロセスのバックグラウンドとフォアグラウンドをうまく利用することで、タスクを終了することなく、複数のファイルの編集など、並行してできるようになります。
スポンサーリンク

バックグラウンドによるプロセスの起動

アンパサンド記号(&)を末尾につけたコマンドを入力することで、プロセスを起動した直後にバックグラウンドにすることができます。
現在、nano myfile1.txt」がバックグラウンドで待機されているとします。

この状態で、nanoでmyfile2.txtを編集するのに、初めからバックグラウンドで起動したいとします。この場合、「nano myfile2.txt &」を実行します。すると、ジョブ番号(今回は2)、プロセス番号(今回は1537)が表示され、シェル画面に戻ります。

jobs」コマンドで、バックグラウンドで実行されているジョブを確認すると、「nano myfile2.txt 」がリストされています。

myfile2.txtを編集したい場合は、「fg 2」で、ジョブ番号2をフォアグラウンドにします。

myfile2.txtの編集ができるようになります。

スポンサーリンク

注意点

シェルを終了するとバックグラウンドのプロセスはすべて終了します。例えば、テキスト編集中に未保存の状態でバックグラウンドにある場合、シェルを終了すると、編集した内容を失います。
nano myfile1.txt」がバックグラウンドにある状態で、「exit」でシェルを抜けます。

再度、ログインすると、バックグラウンドのプロセスは消えています

これを避けるために、ログアウトする前にjobsコマンドを実行して、待機中のジョブがあるかどうか確認する習慣をつけるとよいと思います。

コメント