超时不适用于 bash 脚本中的 Accumulo shell

超时不适用于 bash 脚本中的 Accumulo shell

我正在尝试检查 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

该脚本运行了整整 20 秒,但没有执行该accumulo shell命令,并且还错误地返回 0 退出状态

如果我在终端中运行上述超时命令,该命令将按预期运行。如果我timeout -s KILL 20s sleep 10在脚本或终端中运行基本超时命令(例如),它也可以工作。因此,由于某种原因,bash 脚本中的超时和accumulo shell命令的组合不起作用。

  • Accumulo版本:1.6.0-cdh4.6.0
  • 操作系统版本:CentOS 6.6

答案1

我发现问题源于在不同的 shell 中运行命令。如果我使用命令运行脚本source,例如source myScript.sh,脚本将按预期运行。

然而,我还没有能够追踪到为什么timeout在不同的 shell 中运行和的组合accummulo shell不起作用。

相关内容