Bash はバックグラウンド プロセスを待機します

Sheeraz Gul 2023年6月20日
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 Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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

関連記事 - Bash Background