タイムアウトコード> は、指定されたコマンドを実行し、指定された時間が経過しても実行されている場合にコマンドを終了するコマンドラインユーティリティです。つまり、
timeout
時間制限付きでコマンドを実行できます。 タイムアウト
コマンドはGNUコアユーティリティパッケージの一部であり、ほとんどすべてのLinuxディストリビューションにインストールされています。
タイムアウトオプションが組み込まれていないコマンドを実行する場合に便利です。
この記事では、Linuxの timeout
の使用方法について説明します。 コマンド。
タイムアウト
の使用方法 コマンド#
timeout
の構文 コマンドは次のとおりです:
timeout [OPTIONS] DURATION COMMAND [ARG]…
DURATION
正の整数または浮動小数点数の後に、オプションの単位接尾辞を付けることができます:
-
s
-秒(デフォルト) -
m
-分 -
h
-時間 -
d
-日
単位を使用しない場合、デフォルトで秒になります。期間がゼロに設定されている場合、関連するタイムアウトは無効になります。
コマンドオプションは、引数の前に指定する必要があります。
timeout
の使用方法を示すいくつかの基本的な例を次に示します。 コマンド:
-
5秒後にコマンドを終了します:
timeout 5 ping 8.8.8.8
-
5分後にコマンドを終了します:
timeout 5m ping 8.8.8.8
-
1分6秒後にコマンドを終了します:
timeout 1.1m ping 8.8.8.8
tcpdump
などの昇格された特権を必要とするコマンドを実行する場合 、 sudo
を先頭に追加 タイムアウト
の前 :
sudo timeout 300 tcpdump -n -w data.pcap
シグナルが与えられない場合、 timeout
SIGTERM
を送信します 制限時間に達すると、管理対象コマンドに信号を送ります。 -s
を使用して、送信する信号を指定できます (-signal
)オプション。
たとえば、 SIGKILL
を送信するには ping
に 1分後にコマンドを実行するには、次を使用します:
sudo timeout -s SIGKILL ping 8.8.8.8
SIGKILL
などの名前で信号を指定できます 、または 9
のような番号 。次のコマンドは前のコマンドと同じです:
sudo timeout -s 9 ping 8.8.8.8
使用可能なすべてのシグナルのリストを取得するには、 kill -l
を使用します コマンド:
kill -l
スタックしたプロセスを強制終了する#
SIGTERM
、制限時間を超えたときに送信されるデフォルトのシグナルは、一部のプロセスによってキャッチまたは無視される可能性があります。このような状況では、終了信号が送信された後もプロセスは実行され続けます。
監視対象のコマンドが強制終了されるようにするには、 -k
を使用します (-kill-after
)オプションの後に期間が続きます。指定された制限時間に達した後にこのオプションを使用すると、 timeout
コマンドはSIGKILL
を送信します キャッチまたは無視できない管理対象プログラムへのシグナル。
次の例では、 timeout
コマンドを1分間実行し、コマンドが終了していない場合は、10秒後にコマンドを強制終了します:
sudo timeout -k 10 1m ping 8.8.8.8
タイムアウト-k“ ./test.sh”
与えられた制限時間に達した後に殺された
終了ステータスの保持#
タイムアウトコード>
124
を返します 制限時間に達したとき。それ以外の場合は、管理対象コマンドの終了ステータスを返します。
制限時間に達した場合でもコマンドの終了ステータスを返すには、-preserve-status
を使用します オプション:
timeout --preserve-status 5 ping 8.8.8.8
フォアグラウンドで実行#
デフォルトでは、 timeout
管理対象コマンドをバックグラウンドで実行します。コマンドをフォアグラウンドで実行する場合は、-foreground
を使用します オプション:
timeout --foreground 5m ./script.sh
このオプションは、ユーザー入力が必要なインタラクティブコマンドを実行する場合に便利です。
結論#
タイムアウト
コマンドは、制限時間内に特定のコマンドを実行するために使用されます。
タイムアウトコード> は多くのオプションがない単純なコマンドです。通常、
timeout
を呼び出します 期間と管理対象コマンドの2つの引数のみ。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。