bashスクリプトのAccumuloシェルでは、タイムアウトは機能しません。

bashスクリプトのAccumuloシェルでは、タイムアウトは機能しません。

Accumuloテーブルスキャンがタイムアウトしたことを確認しようとしています(テーブルが破損していることを確認するため)。

#!/bin/bash

timeout -s KILL 20s accumulo shell -zi myInstance -u root -p secret -e "scan -np -t myTable"

if [ $? -eq 0 ]; then
  echo 'Scan successful'
else
  echo 'Scan timed out'
fi

accumulo shellスクリプトはコマンドを実行せずに20秒間実行され、終了ステータス0を誤って返しました

端末で上記のタイムアウトコマンドを実行すると、コマンドは期待どおりに機能します。timeout -s KILL 20s sleep 10スクリプトまたは端末でデフォルトのタイムアウトコマンド(例:)を実行しても機能します。したがって、何らかの理由でaccumulo shellbashスクリプトでタイムアウトとコマンドの組み合わせは機能しません。

  • 累積バージョン: 1.6.0-cdh4.6.0
  • オペレーティングシステムのバージョン:CentOS 6.6

答え1

別のシェルでコマンドを実行すると問題が発生することがわかりました。sourceたとえば、コマンドを使用してスクリプトを実行すると、source myScript.shスクリプトは期待どおりに実行されます。

ところで追跡ができませんでした。なぜtimeout実行と他のシェルの組み合わせはaccummulo shell機能しません。

関連情報