GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでタイムアウトコマンドを使用して実行中のコマンドにタイマーを設定する

timeoutコマンドを使用すると、他のコマンドやプログラムの実行に時間制限を設定できます。プログラムが設定された制限より長く実行されると、タイムアウトによってプログラムが強制終了されます。

いいですね。このコマンドの使い方を見てみましょう。

Linuxでのタイムアウトコマンドの使用

タイムアウトコマンドの構文は次のとおりです。

timeout [options] seconds command

ご覧のとおり、ここでは常に秒単位で設定されています。

sleepコマンドの例を見てみましょう。スリープコマンドは、基本的に割り当てられた時間まで「スリープ」します。つまり、その秒数だけ待機するということです。

timeout 4 sleep 10

したがって、sleep 10を使用すると、シェルは10秒間待機します。しかし、タイムアウトを4秒にすると、10秒間実行されるはずだったsleepコマンドはわずか4秒で終了します。

デフォルトでは、timeoutコマンドはSIGTERMを送信して、実行中のプログラムを丁寧に強制終了します。 -sオプションを使用して他の信号を送信できます。

Linuxでkill-lコマンドを使用すると、すべてのkillシグナルを確認できます。デフォルトのSIGTERMの代わりにSIGKILLシグナル(kill -9)を送信したいとします。次のようなものを使用できます:

timeout -s SIGKILL 3 sleep 30

SIGKILLの代わりにKILLまたは9(kill -lにリストされているSIGKILLの番号)を使用することもできます。

プログラムをハードキルするのは良いことではありません。ただし、プログラムはSIGTERMを無視できます。

処理するためのより良い方法は、実行中のプログラムによって最初の終了要求が無視された場合にのみ、killシグナルを送信することです。

したがって、5秒以内にプログラムを実行したいとします。ただし、実行中のプログラムが停止を拒否した場合は、デフォルトのSIGTERMを送信してから3秒後にkillシグナルを送信します。使用できるものは次のとおりです:

timeout -k 3 5 program

これは、プログラムが8秒を超えて実行されないことを意味します。 timeコマンドを使用して、プログラムが実際に実行された時間を確認できます。

タイムアウトコマンドの実用的な使用法はありますか?

毎日使用しないかもしれないそれらのあいまいなLinuxコマンドの1つのように聞こえます。ただし、特別な状況では役立つ場合があります。

たとえば、少し気分をリフレッシュするためにターミナルゲームをプレイし始めたが、時間を忘れて、希望の時間をはるかに超えてプレイし続けた場合。

このような場合、timeoutコマンドが役立ちます。

Linuxコマンドの詳細については、しばらくお待ちください。ニュースレターを購読して、定期的なヒントやコツを入手してください。


Linux
  1. LinuxでのJQコマンドと例

  2. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行

  3. Linuxエコーコマンド

  1. Linuxのwatchコマンドでコマンドとタスクを監視する

  2. AからZのLinuxコマンド

  3. システムをクラッシュさせる方法:危険なLinuxコマンド

  1. 14危険なLinuxターミナルコマンド

  2. 例を含むwcLinuxコマンド

  3. 10 の例を含む最も単純な Linux コマンド