timeout コマンド

任意のコマンドを実行して、一定時間経過しても終了しなかったら、そのコマンドを強制的に終了させるコマンド。

## 10秒間pingし続ける
$ timeout 10 ping www.google.co.jp

## 1分間pingし続ける
$ timeout 1m ping www.google.co.jp

単位はデフォルトでは秒だが、以下のような表現ができる。

10s
10秒間
10m
10分間
10h
10時間
10d
10日間

タイムアウトに達してコマンドが強制終了した場合はtimeoutコマンドは124という終了コードを返す。コマンドが見つからなかった場合は127という終了コードを返す。

コマンドの終了はTERMシグナルによって行われるみたい。

$ timeout 1 sh -c "trap 'echo trapped' TERM; sleep 10"
Terminated
trapped
# 1秒で終了する

このシグナルは -s オプションで変更できる。

インストール

Coreutilsというパッケージに入っているので、CentOSにもUbuntuにも始めから入っている。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。