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
すべてのバックグラウンド・ジョブの終了を待つ。
関連項目
[編集]外部リンク
[編集]- 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 リファレンス)