kazmax - Linux で自宅サーバー

バックグラウンドでプログラムを実行する(&アンド)

バックグラウンドでプログラム(コマンド)を実行するには、(&アンド)を使います。長い処理や、複数の処理を並列に実行したい場合に便利です。

Last Update : 2014年02月27日

バックグラウンドでプログラムを実行する(&アンド)項目

  1. バックグラウンドでプログラムを実行する(&アンド)
  2. バックグラウンドジョブの終了をすぐに知る

1. バックグラウンドでプログラムを実行する(&アンド)

バックグラウンドでプログラム(コマンド)を実行するには、(&アンド)を使います。プログラム(コマンド)の後ろに、(&アンド)をつけて実行するだけでプログラム(コマンド)がバックグラウンドで処理されます。

長い処理や、複数の処理を並列に実行したい場合に便利です。

書式

Command &

Command は、任意のプログラム(コマンド等)。

例)バックグラウンドでプログラムを実行してみる

# sleep 60 &
[1] 2833
# ← 次のコマンドを受け付ける状態になっている

2個目、3個目のプログラムも実行してみる

# sleep 60 &
[2] 2842

# sleep 60 &
[3] 2843

# ← 次のコマンドを受け付ける状態になっている

memo

バックグラウンドで実行中のプログラムは、「jobs」コマンドで確認できます。

# jobs
[1]   実行中               sleep 60 &
[2]-  実行中               sleep 60 &
[3]+  実行中               sleep 60 &

2. バックグラウンドジョブの終了をすぐに知る

バックグラウンドのプログラムが終了した場合、エンターキーを押したタイミングでシェルが教えてくれます。

# エンターキーを押してみた
#
[1]   終了     sleep 60 ← プログラムの終了の通知
[2]-  終了     sleep 60 ← プログラムの終了の通知
[3]+  終了     sleep 60 ← プログラムの終了の通知

setコマンドに「-b」オプションをつけてbash の属性を変更すると、バックグラウンドジョブが終了した際にすぐにステータスが通知されるようになります。

# set -b ← 「-b」オプションで、bashの属性を変更
# sleep 60 &
[1] 18546

60秒待機する。

# [1]+  終了   sleep 60  ← すぐにステータスが通知される。
プロセス管理 関連記事
Linux 基礎知識 関連記事