kshで "idql"コマンドがタイムアウトしました。

kshで

以下は私のコードの一部です。

idql -n $REPOSITORY_NAME.$cs -Udmadmin -P"" -R$DM_SCRIPTS/test.api > /dev/null 2>&1
    if [ $? != 0 ]; then
      echo "   \c"
      echo "ERROR: Cannot connect to: $REPOSITORY_NAME.$cs on $HOST"
    else
      echo "   Successfully connected to: $REPOSITORY_NAME.$cs"
    fi

これがサービス監視に使用する主なロジックです。ただし、サービスが中断されることがよくあるため、上記のコードスニペットの最初の行が中断された後も続行されません。したがって、これらの「サービスの中断」状況を捉えることはできません。

最も重要なのは、既存の条件(if-else条件文で指定)を確認し続け、さらに「保留中」の状態も確認する必要があることです。コマンドがidql5秒以上かかる場合、コマンドは中断されたと見なすことができます。

ベストアンサー1

私の考えでは、あなたが欲しいと思います。timeoutシステムの一部coreutilsであり、システムで利用可能なコマンド

5秒後にコマンドを終了するには、次のように変更します。

timeout 5 iqdl -n $REPOSITORY_NAME.$cs ...

ない場合は、coreutilsここからダウンロード、ビルド、インストールできます。http://www.gnu.org/software/coreutils/

また見なさい:https://stackoverflow.com/questions/687948/timeout-a-command-in-bash-without-unnecessary-delay

おすすめ記事