Linuxタイムアウトコマンドはリアルタイムを使用しますか?バイナリが破損していますか?

Linuxタイムアウトコマンドはリアルタイムを使用しますか?バイナリが破損していますか?

timeout1時間後にスクリプトを終了したいと思います。

私はDebianで実行していてtimeout 1h <script>簡単です。

私のアーチLinuxシステムでは状況が異なります。いくつか試した後、問題は私のタイムアウトバイナリが実際のシステム時間ではなくCPU時間を使用していることに気づいたようです。明らかに、タイムアウトしたいスクリプトはwgetCPU時間をあまり使用しません。コマンドは、timeout 3600 wget終了するまで最大半日間実行できます。

timeout 5 dd if=/dev/zero of=/dev/nullただし、クロック時間6.6秒(CPU時間5.1秒)後に終了します。

timeoutバイナリが見つかりません(説明:いいえ私のシステムでは、Webからダウンロードすることを意味します。)すべてのソースは基本的に「Linuxに付属しています」と言います。私にはorはtimeoutありませんが、それが何であれ、次のように言います。--version--help

Usage:
    timeout [-t timelimit] [-m memlimit] [-x hertz] command [arguments ...]

Died at /usr/local/bin/timeout line 29

混乱したバイナリはありますか?によると、man timeoutバージョンとヘルプオプションの両方が利用可能である必要があります。 Linuxコアの一部なので、timeoutどうやって再インストールしますか?

ベストアンサー1

元の投稿とそのコメントを振り返ると、この問題は存在するタイムアウトバイナリの2つの異なるコピーに関連しているようです。 1つはそこにあり/usr/local/bin、もう1つはそこにあります/usr/bin

シェルがバイナリを探していない場所にそれらの1つを移動すると、どちらがどちらであるかを判断するのに役立ちます。/usr/binシステムバイナリの可能性が高いと仮定すると、そのうちの1つが/usr/local/bin私たちの問題かもしれません。私が間違っている可能性があります。

Debian、Ubuntu、およびその派生製品でパッケージマネージャを照会できます。

$ dpkg -S /usr/bin/timeout
coreutils: /usr/bin/timeout

またはCentOS、RedHat、Fedoraなど:

$ yum provides /usr/bin/timeout
...
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : base
Matched from:
Filename    : /usr/bin/timeout

ただし、パッケージマネージャは正しいかもしれません/usr/local/bin/timeout

おすすめ記事