Originalmente postei uma pergunta similar no StackOverflow, pensando que o problema pode estar relacionado com a programação java mas não foi.
Finalmente, descobrimos o que estava acontecendo.
Meu programa java é iniciado com um script de shell. Quando executamos o script manualmente, o comando ntpq
é encontrado e chamado com sucesso. O problema surge quando o software é totalmente implantado. No ambiente final, temos um demônio cron
agendado que mantém nosso programa ativo, mas PATH
estabelecido por cron
é diferente do PATH
que nosso perfil foi atribuído.
PATH
usado pelo cron:
.:/usr/bin:/bin
PATH
que recebemos login para iniciar o script manualmente:
/usr/sbin:/usr/bin:/bin:/sbin:/usr/lib:/usr/lib64:/local/users/nor:
/usr/local/bin:/usr/local/lib:.
Normalmente, ntpq
está em
/usr/sbin/ntpq
Aqui você pode encontrar um melhor descrição do problema e várias soluções.