コマンドプロンプトからコマンドを始動した後で、そのコマンドをバックグラウンドに置くと便利な場合がよくあります。コマンドをバックグラウンドに置かない場合は、そのコマンドが作業を完了するまでは次のプロンプトは表示されません。しかし、中には完了するまでにかなりの時間がかかるコマンドもあるため、その間に別のコマンドを実行する方が効率的です。
コマンドをバックグラウンドで実行する場合は、下記に示すようにコマンド名の後にアンパサンド (&) を入力します。その下に表示されている番号は、プロセス ID です。
$ bigjob & [1] 21414 $ |
この例では、コマンド bigjob はバックグラウンドで実行され、他のコマンドの入力を続行できます。バックグラウンドのジョブが終了すると、次にコマンド (この例では date) を入力したときに下記のようなメッセージが表示されます。
$ date Mon Feb 3 10:23:25 PST 1992 [1] + Done bigjob $ |
バックグラウンドのジョブが完了する前にログアウトする可能性がある場合は、下記の例に示すように、nohup コマンド (no hangup) を使ってジョブを起動すると、ログアウトしてもそのジョブを完結させることができます。それ以外の場合は、ログアウトするとバックグラウンドのジョブは終了してしまいます。
$ nohup bigjob & [1] 21414 $ |