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

初心者向けのLinuxタイムアウトコマンドの説明(例付き)

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

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

Linuxタイムアウトコマンド

名前が示すように、Linuxのtimeoutコマンドを使用すると、時間制限付きでコマンドを実行できます。その構文は次のとおりです。

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

そして、ツールのマニュアルページで説明されているのは次のとおりです。

timeout-制限時間内にコマンドを実行します
COMMANDを開始し、DURATION後も実行されている場合はコマンドを強制終了します

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

Q1。タイムアウトコマンドの使い方は?

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

たとえば、5秒後にpingコマンドをタイムアウトする場合、この場合のタイムアウトの使用方法は次のとおりです。

 timeout 5 ping google.com 

Q2。コマンドの終了ステータスを出力で取得するにはどうすればよいですか?

デフォルトでは、timeoutコマンドが成功すると、終了ステータスとして124が返されます。次に例を示します。

最初のケースでは、timeoutコマンドを正常に実行しました。ご覧のとおり、終了ステータスは124でした。ただし、2回目の実行では、Ctrl + Cを使用してコマンドを強制的に強制終了しました。この場合、終了ステータスです。 0でした。

ただし、タイムアウトが正常に実行された場合でもタイムアウトで入力コマンドのステータスを返す場合は、-preserve-statusコマンドラインオプションを使用する必要があります。

例:

 timeout --preserve-status 5 ping google.com 

Q3。信号タイムアウト送信を変更するにはどうすればよいですか?

入力コマンドに信号を送信してタイムアウトが機能し、入力コマンドが期限が近づくまでに実行を停止することを推測しても意味がありません。デフォルトでは、SIGTERM コマンドによって使用されます。

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

例:

 timeout -s SIGKILL [COMMAND] 

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

 kill -l <​​/ pre> 

Q4。タイムアウトでKILLシグナルを自動的に送信するにはどうすればよいですか?

タイムアウトによって初期信号が送信された後も実行を継続する入力コマンドが発生する場合があります。このような場合、タイムアウトにはオプション「--kill-after」があります。

マニュアルページで説明されている方法は次のとおりです。

 -k、--kill-after =DURATION 

COMMANDがまだ実行されている場合は、KILLシグナルも送信します

最初のシグナルが送信されてからかなり経ちます
>

ご覧のとおり、このシグナルが送信される時間の後にタイムアウトに通知する期間を指定する必要があります。

結論

実行する作業の種類によっては、timeoutコマンドが非常に便利なツールになる場合があります。ここで、このチュートリアルでは、このユーティリティが提供するオプションの大部分について説明しました。これらの練習が終わったら、manページにアクセスしてタイムアウトについて詳しく知ることができます。


Linux
  1. 初心者向けのLinuxwcコマンドの説明(6例)

  2. 初心者向けのLinuxunexpandコマンドの説明(例付き)

  3. 初心者向けのLinuxexitコマンドの説明(例付き)

  1. 初心者向けのLinuxcksumコマンドの説明(例付き)

  2. 初心者向けのLinuxCsplitコマンドの説明(6例)

  3. 初心者向けのLinuxobjdumpコマンドの説明(7例)

  1. 初心者向けのLinuxフリーコマンドの説明(6例)

  2. 初心者向けのLinuxヘッドコマンドの説明(5例)

  3. 初心者向けのLinuxteeコマンドの説明(6例)