Wait
この項目では、UNIXのコマンドについて説明しています。その他のwaitについては「ウェイト」をご覧ください。 |
wait(ウェイト)は、バックグラウンドプロセスの実行が終了するまで停止するシェル組み込みコマンドである。
使用法
Bourne シェル
wait [n]
nが現在実行しているバックグラウンドプロセス(ジョブ)のPIDまたはジョブIDである。nが与えられていない場合、このコマンドはシェルが把握している全てのジョブが終了するまで停止する。
通常、wait
は最後に終了したジョブの終了ステータスを返す。nに存在しないジョブやゼロを指定し、待つべきジョブが存在しない場合は、127を返すことがある。
wait
は、現在のシェル実行環境のジョブテーブルを参照する必要があるため、通常はシェルビルトイン(英語版)として実装されている。
例
このコマンドは、スクリプトの一部を並行で実行し、後ろの部分が前の部分の完了に依存するようなバリアを実装するときに役に立つ。
以下の(若干不自然な)例は、inoaという名前のホストからsrc/ディレクトリをrsyncで取り込み、同時にこのプログラムが依存するライブラリを更新し、これらを組み合わせてビルドを実行する。
#!/bin/bash # Parallel update script which makes use of the wait command # Update local copy rsync iona:src/ . & # Upgrade required libraries, or exit indicating failure if make failed for some reason make -C lib || exit 1 # Wait for rsync to terminate (may have already happened) and finish the job, unless rsync failed wait && make
C シェル
wait
すべてのバックグラウンド・ジョブの終了を待つ。
関連項目
- Wait (operating system)
外部リンク
- GNU bash reference manual(英語)
- wait(1) シェル・コマンド man page(SunOS リファレンスマニュアル)
- wait(1) シェル・コマンド man page(HP-UX リファレンス)
- wait(2) システム・コール man page(Solaris 9 Reference Manual Collection)(英語)
- wait(2) システム・コール man page(HP-UX リファレンス)