Linux で時間制限 (タイムアウト) を指定してコマンドを実行する方法
Linux には豊富なコマンドが付属しており、各コマンドは固有であり、特定の場合に使用されます。 Linux の目標は、可能な限り高速かつ効率的に動作できるようにすることです。 Linux コマンドのプロパティの 1 つは時間制限です。必要なコマンドには制限時間を設定できます。時間が経過すると、コマンドは実行を停止します。
この短いチュートリアルでは、コマンドで時間制限を使用する方法に関する 2 つの方法を学習します。
このページでは:
- タイムアウト ツールを使用して Linux コマンドを実行する
- 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 シグナルを送信します。
タイムアウトオプションとは異なり、タイムリミットにはキルシグ、警告、キルタイムなどのより多くのオプションがあります。 > と警告時間です。
Timelimit はDebian ベースのシステムのリポジトリにあり、インストールするには次のコマンドを使用します。
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=15、killtime を使用することに注意してください。 =120とキルシグ=9です。
結論
このガイドでは、Linux で時間制限付きでコマンドを実行する方法を学習しました。復習として、タイムアウトコマンドまたはタイムリミットユーティリティを使用できます。
タイムアウトコマンドは使いやすいですが、タイムリミットユーティリティは少し複雑ですが、より多くのオプションがあります。ニーズに応じて最適なオプションをお選びいただけます。