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 shell
bashスクリプトでタイムアウトとコマンドの組み合わせは機能しません。
- 累積バージョン: 1.6.0-cdh4.6.0
- オペレーティングシステムのバージョン:CentOS 6.6
答え1
別のシェルでコマンドを実行すると問題が発生することがわかりました。source
たとえば、コマンドを使用してスクリプトを実行すると、source myScript.sh
スクリプトは期待どおりに実行されます。
ところで追跡ができませんでした。なぜtimeout
実行と他のシェルの組み合わせはaccummulo shell
機能しません。