Eu encontrei o culpado - era o construtor de arquivos de configuração do Centreon.
ndo2db
tem uma configuração de lock_file
que está faltando na interface do usuário de configuração do Centreon.
Quando o Centreon gera os arquivos de configuração, ele também gera ndo2db.cfg
- mas sem o valor de configuração lock_file
.
Há um problema em aberto sobre isso:
Tendo spelunked o código-fonte, quando ndo2db
daemonises e se não houver uma configuração lock_file
, ele ignorará isso e continuará, e nenhum arquivo de bloqueio será gravado contendo o PID.
Isso, é claro, significa que a função stop
no script init não será capaz de identificar o id do processo ndo2db para que ele possa ser eliminado.
Atualização:
Para resolver esse problema, adicionei manualmente uma nova coluna à tabela cfg_ndo2db
no banco de dados centreon
:
ALTER TABLE 'cfg_ndo2db'
ADD COLUMN 'lock_file' VARCHAR(255) NULL DEFAULT NULL;
Em seguida, preenchi o caminho do arquivo de bloqueio do ndo2db:
UPDATE 'cfg_ndo2db' SET 'lock_file'='/usr/local/nagios/var/ndo2db.lock' WHERE 'id'=1;
Isso forçará o centro a escrever a configuração lock_file
cada vez que a configuração for gerada. Isso também parece sobreviver às atualizações, embora eu sempre verifique os scripts de atualização do banco de dados para garantir que isso não ocorra como uma correção não documentada.