timeout - コマンドに制限時間を設定する

スポンサーリンク

timeoutコマンドは、コマンドを実行させる際に制限時間をつけることができます。

また、終了する際に送信されるシグナルを変更できます。

わざと無限ループの処理のプログラムを作成し、timeoutコマンドで制限時間を設けて、処理するような使い方もできます。

スポンサーリンク

timeoutコマンドの構文

timeoutコマンドの構文

duration:終了する時間(デフォルト:sec)

 

 

 

timeoutコマンドの利用例

指定した時間でスクリプトを終了

timeoutコマンドは時間を指定することで、コマンドの処理時間に制限をつけることが出来ます。

指定するのに使用できる単位は、
s:秒(デフォルト)
m:分
h:時
d:日
になります。

コマンド例では無限ループになっているスクリプトを終了させています。

コマンド例

test.sh

実行結果

 

 

 

指定した時間の後の一定時間後KILLシグナルを送信
(-kオプション)

timeoutコマンドで送られるのはTERMシグナルになります。TERMシグナルがコマンドに送られた後にプログラムが終了していない場合、さらに-kオプションで指定した時間後に今度はKILLシグナルを送り、プログラムを強制終了させます。

コマンド例

test2.sh

実行結果

 

 

 

送信するシグナルを変更
(-sオプション)

-sオプションを用いるとtimeoutコマンドで送信されるシグナルをTERMシグナルから別のシグナルに変更することが出来ます。

コマンド例

test3.sh

実行結果

 

 

 

参考

GNU Coreutils: timeout invocation