連載
» 2019年06月28日 05時00分 公開

Linux基本コマンドTips(317):【 wait 】コマンド――プロセスやジョブの終了を待つ

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスやジョブの終了を待つ「wait」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスやジョブの終了を待つ「wait」コマンドです。

waitコマンドとは?

 「wait」はプロセスやジョブの終了を待つコマンドです。「バックグラウンドで複数のコマンドを実行し、全てが終了したら次の処理を行う」といった処理が可能です。シェルスクリプト中で使用することが多いでしょう。

 waitコマンドはbashのビルトインコマンド(シェルの組み込みコマンド)であるため、「man」コマンドではなく、「help」コマンドで詳細を表示します。



waitコマンドの書式

wait [ジョブ番号かプロセスID]

※[ ]は省略可能な引数を示しています。





waitの主なオプション

 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コマンド」(画像ファイルを表示するコマンド、ここでは単にバックグラウンドで実行するコマンドとして使用)を順に実行しています。

画面1 画面1 1つのジョブの終了を待つ実行例
画面2 画面2 全てのジョブの終了を待つ実行例


スクリプト中でwaitコマンドを使う

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。