本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスやジョブの終了を待つ「wait」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスやジョブの終了を待つ「wait」コマンドです。
「wait」はプロセスやジョブの終了を待つコマンドです。「バックグラウンドで複数のコマンドを実行し、全てが終了したら次の処理を行う」といった処理が可能です。シェルスクリプト中で使用することが多いでしょう。
waitコマンドはbashのビルトインコマンド(シェルの組み込みコマンド)であるため、「man」コマンドではなく、「help」コマンドで詳細を表示します。
wait [ジョブ番号かプロセスID]
※[ ]は省略可能な引数を示しています。
bash バージョン4.3から、複数のジョブまたはプロセスを指定して、いずれかのプロセスの終了を待つ「-n」オプションが追加されました。CentOS 7のbash(4.2.46)では未対応ですが、Ubuntu 18.04 LTSのbash(4.4.19)は「-n」に対応しています。
「wait %ジョブ番号」または「wait プロセスID」で、指定したジョブやプロセスの終了を待ちます。プロセスIDで指定できるのは、現在のシェルから実行されたプロセスのみです。
引数を指定しなかった場合、現在のシェルが実行している全てのジョブが終了するのを待ちます。
wait %1
(ジョブ番号「1」の終了を待つ)
wait 1001
(プロセスID「1001」の終了を待つ。現在のシェルから実行されたプロセス以外は指定できない)
wait
(現在のシェルが実行している全てのジョブが終了するのを待つ)
画面1、画面2では、waitコマンドの動作を確かめるために、Webブラウザ「Firefox」と「eogコマンド」(画像ファイルを表示するコマンド、ここでは単にバックグラウンドで実行するコマンドとして使用)を順に実行しています。
Copyright © ITmedia, Inc. All Rights Reserved.