ウェブサイト検索

Linux で時間制限 (タイムアウト) を指定してコマンドを実行する方法


Linux には豊富なコマンドが付属しており、各コマンドは固有であり、特定の場合に使用されます。 Linux の目標は、可能な限り高速かつ効率的に動作できるようにすることです。 Linux コマンドのプロパティの 1 つは時間制限です。必要なコマンドには制限時間を設定できます。時間が経過すると、コマンドは実行を停止します。

この短いチュートリアルでは、コマンドで時間制限を使用する方法に関する 2 つの方法を学習します。

このページでは:
  1. タイムアウト ツールを使用して Linux コマンドを実行する
  2. Timelimit プログラムを使用して Linux コマンドを実行する

タイムアウト ツールを使用して Linux コマンドを実行する

Linux にはタイムアウトと呼ばれるコマンドライン ユーティリティがあり、これを使用すると時間制限付きでコマンドを実行できます。

その構文は次のとおりです。

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

このコマンドを使用するには、 実行するコマンドでタイムアウト値 (秒単位) を指定します。たとえば、ping コマンドを5 秒後にタイムアウトするには、次のコマンドを実行します。

timeout 5s ping google.com

番号 5 の後の (s) を指定する必要はありません。以下のコマンドは同じであり、引き続き機能します。

timeout 5 ping google.com

その他の接尾辞には次のものがあります。

  • m は分を表します
  • h は時間を表します
  • d は日を表します

場合によっては、タイムアウトが初期シグナルを送信した後でもコマンドが実行され続けることがあります。このような場合は、--kill-after オプションを使用できます。

構文は次のとおりです。

-k, --kill-after=DURATION

キルシグナルが送信されるまでの時間をタイムアウトに知らせるために、期間を指定する必要があります。

たとえば、示されているコマンドは 8 秒後に終了します。

timeout 8s tail -f /var/log/syslog

Timelimit プログラムを使用して Linux コマンドを実行する

時間制限 プログラムは、指定されたコマンドを実行し、指定された時間が経過すると、指定されたシグナルを使用してプロセスを終了します。最初に警告シグナルを送信し、タイムアウト後に Kill シグナルを送信します。

タイムアウトオプションとは異なり、タイムリミットにはキルシグ警告キルタイムなどのより多くのオプションがあります。 > と警告時間です。

TimelimitDebian ベースのシステムのリポジトリにあり、インストールするには次のコマンドを使用します。

sudo apt install timelimit

Arch ベース システムの場合は、AUR ヘルパー プログラム (Pacaur Pacman など) を使用してインストールできます。 >パッカーです。

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

他の Linux ディストリビューションでは、時間制限ソースをダウンロードして手動でインストールできます。

インストール後、以下のコマンドを実行して時刻を指定します。この例では、10 秒を使用できます。

timelimit -t10 tail -f /var/log/pacman.log

引数を指定しない場合、Timelimit はデフォルト値、warntime=3600 秒、warnsig=15killtime を使用することに注意してください。 =120キルシグ=9です。

結論

このガイドでは、Linux で時間制限付きでコマンドを実行する方法を学習しました。復習として、タイムアウトコマンドまたはタイムリミットユーティリティを使用できます。

タイムアウトコマンドは使いやすいですが、タイムリミットユーティリティは少し複雑ですが、より多くのオプションがあります。ニーズに応じて最適なオプションをお選びいただけます。