Linux, コマンド · 1 min read · Feb 02, 2026

Linux timeout コマンドの初心者向け解説(例付き)

時々、Linuxでコマンドを実行する際に、特定の時間だけ実行したい場合があります。この目的のために特別に開発されたコマンドラインユーティリティ - timeout - があります。この記事では、いくつかのわかりやすい例を使ってこのコマンドの基本を説明します。

しかし、その前に、このチュートリアルのすべての例はUbuntu 18.04 LTSマシンでテストされていることを言及する価値があります。

Linux timeout コマンド

名前が示すように、Linuxのtimeoutコマンドは、時間制限付きでコマンドを実行することを可能にします。以下がその構文です:

timeout [OPTION] DURATION COMMAND [ARG]...

そして、ツールのmanページは次のように説明しています:

timeout - run a command with a time limit  
Start COMMAND, and kill it if still running after DURATION

以下は、このツールがどのように機能するかをよりよく理解するためのQ&Aスタイルの例です。

Q1. timeoutコマンドの使い方は?

基本的な使い方は非常に簡単です - 入力でタイムアウト値(秒単位)と実行したいコマンドを指定して「timeout」を実行するだけです。

例えば、5秒後にpingコマンドをタイムアウトさせたい場合、次のようにtimeoutを使用できます。

timeout 5 ping google.com

Q2. コマンドの終了ステータスを出力で取得するには?

デフォルトでは、timeoutコマンドが成功すると、終了ステータスとして124を返します。以下はその例です:

最初のケースでは、timeoutコマンドを正常に実行させ、終了ステータスは124でした。しかし、2回目の実行では、Ctrl+Cを使用してコマンドを強制終了させ、その場合の終了ステータスは0でした。

しかし、timeoutが正常に実行されても入力コマンドのステータスを返すようにしたい場合は、–preserve-statusコマンドラインオプションを使用する必要があります。

例えば:

timeout --preserve-status 5 ping google.com

Q3. timeoutが送信する信号を変更するには?

timeoutが入力コマンドに信号を送信して、締切が近づくと実行を停止させることは推測するまでもありません。デフォルトでは、コマンドによってSIGTERMが使用されます。

ただし、必要に応じてtimeoutが送信する信号を変更することができます。そのためには、-sコマンドラインオプションを使用し、timeoutが送信する信号を入力として指定する必要があります。

例えば:

timeout -s SIGKILL [COMMAND]

送信可能な信号のリストを取得するには、次のコマンドを実行します:

kill -l

Q4. timeoutが自動的にKILL信号を送信するようにするには?

時々、timeoutが初期信号を送信した後も実行を続ける入力コマンドに遭遇することがあります。このような場合、timeoutは’–kill-after’オプションを提供します。

manページは次のように説明しています:

-k, --kill-after=DURATION  
            also send a KILL signal if COMMAND is still running  
            this long after the initial signal was sent

ご覧の通り、timeoutがこの信号を送信するまでの時間を指定する必要があります。

結論

あなたの行う作業の種類によって、timeoutコマンドは非常に便利なツールとなる可能性があります。ここでは、このユーティリティが提供するほとんどのオプションについて説明しました。これらの練習が終わったら、timeoutについてさらに学ぶためにmanページにアクセスできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。