timeout não funciona com o shell accumulo no script bash

1

Estou tentando verificar se um scan de uma tabela do Accumulo atinge o tempo limite (para ver se a tabela está corrompida).

#!/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

O script executa os 20 segundos completos e não executa o comando accumulo shell e também retorna um status de saída 0 incorretamente .

Se eu executar o comando timeout acima em um terminal, o comando será executado conforme o esperado. Se eu executar um comando de tempo limite básico (por exemplo, timeout -s KILL 20s sleep 10 ) no script ou em um terminal, isso também funcionará. Portanto, por algum motivo, a combinação de um tempo limite e o comando accumulo shell em um script bash não funciona.

  • Versão do Accumulo: 1.6.0-cdh4.6.0
  • versão do SO: CentOS 6.6
por Joe W 03.02.2016 / 19:37

1 resposta

0

Descobri que o problema está na execução do comando em um shell diferente. Se eu executar o script usando o comando source , por exemplo source myScript.sh , o script é executado conforme o esperado.

No entanto, ainda não consegui rastrear por que executar a combinação de timeout e accummulo shell em um shell diferente não funciona.

    
por 04.02.2016 / 20:15