本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、制限時間を付けて指定のコマンドを実行する「timeout」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、制限時間を付けて指定のコマンドを実行する「timeout」コマンドです。
「timeout」は制限時間を付けて指定のコマンドを実行するコマンドです。「timeout 秒数 コマンド」のように、タイムアウトまでの時間を指定して、コマンドを実行します。
timeout [オプション] 時間 コマンド名
※時間のデフォルトは秒。指定できる単位はs(秒)、m(分)、h(時)、d(日)
短いオプション | 長いオプション | 意味 |
---|---|---|
-s シグナル | --signal=シグナル | タイムアウト時にコマンドに送るシグナルを指定する(デフォルトはTERMシグナル、本文を参照、※1) |
-k 追加の時間 | --kill-after=追加の時間 | 最初のタイムアウトでシグナルを送った後、指定した時間を経過してもコマンドが動作している場合はKILLシグナルを送る(本文を参照) |
--preserve-status | タイムアウトを起こした場合も、実行したコマンドと同じステータスコードで終了する(タイムアウト時のデフォルトの終了ステータスは124) | |
--foreground | timeoutをシェルプロンプトから直接実行しない場合、コマンドが端末からシグナルを受信できるようにする | |
※1 シグナルは番号か「HUP」などの文字で指定。使用できるシグナルは「kill -l」(連載第8回)を参照。
「timeout 時間 コマンド」で、制限時間(タイムアウトまでの時間)を付けてコマンドを実行できます。デフォルトの単位は「秒数」です。小数点も使用できます。単位を指定する場合、「s」(秒)の他、「m」(分)、「h」(時)、「d」(日)を選択できます。
実行するコマンドを指定する際、そのコマンドのオプションなどを付けることができます。例えば、画面1では、「timeout 10 ping localhost」として、「ping localhost」(第143回)を10秒間だけ実行しています。
「ping」コマンドはサーバやIPアドレスを指定して応答の有無を調べます。今回は対象を“localhost”、つまり自分自身として、単に“1秒ごとに結果を表示し続けるコマンド”として使用しています(※2)。
※2 pingコマンド自身にも、タイムアウトまでの時間を指定するオプション(-w)や、パケットを送る回数を指定するオプション(-c)がある。
timeout 時間 コマンド
(制限時間付きでコマンドを実行する)
timeout 10 ping localhost
(「ping localhost」を実行、10秒経過したら終了する)
Copyright © ITmedia, Inc. All Rights Reserved.