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
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook