HOWTO · Bash
Bash はバックグラウンド プロセスを待機します
このチュートリアルでは、Bash でバックグラウンド プロセスを待機する方法を示します。
このページの内容
このチュートリアルでは、Bash でバックグラウンド プロセスを待機する方法を示します。
Bash はバックグラウンド プロセスを待機する
Bash の wait コマンドを使用して、すべてのバックグラウンド プロセスが完了するのを待つことができます。 このコマンドはプロセスを待機し、終了ステータスを返します。
wait コマンドは現在のシェル実行環境に影響を与えるため、Bash やその他のシェルに組み込まれています。
wait コマンドの構文は次のとおりです。
wait [Options] BackgroundProcessID
BackgroundProcessID id はプロセスまたはジョブです。 wait コマンドは、指定された ID のすべてのプロセスとサブプロセスが完了するまで待機します。
wait コマンドの簡単な例は次のとおりです。
wait 1234
上記のコマンドは、バックグラウンド プロセス 1234 を待機します。複数のプロセスを指定することもできます。その場合、wait コマンドはすべてのバックグラウンド プロセスを待機します。
それでは、バックグラウンド プロセスでプロセスを実行しましょう。
rsync -a /mn/c/Users/Sheeraz &
上記のコマンドは、プロセスをバックグラウンドで実行し、ジョブとプロセス ID を返します。 出力を参照してください。
[1] 37
ジョブ ID は 1 で、プロセス ID は 37 です。
ジョブを待つために、次のコマンドを実行します。
wait %1
1 はジョブ ID です。 このコマンドの出力は次のとおりです。
[1]+ Exit 23 rsync -a /mn/c/Users/Sheeraz
プロセスを待機するには、次のコマンドを使用します。
wait 37
上記のコマンドは、バックグラウンド プロセス 37 が完了するのを待ちます。 ほとんどの場合、Bash スクリプト ファイルで wait コマンドが使用され、並行して実行されるバックグラウンド プロセスが生成されます。
スクリプト ファイルの例を次に示します。
#!/bin/bash
sleep 30 &
ProcessId=$!
echo "PID: $ProcessId"
wait $ProcessId
echo "Exit status: $?"
このスクリプトを実行すると、バックグラウンド プロセスのプロセス ID と終了ステータスが出力されます。 出力を参照してください。
PID: 50
Exit status: 0