Processo inicial de comportamento estranho com script de inicialização

1

Estou vendo um comportamento estranho ao iniciar um processo com um script de inicialização. Provavelmente estou fazendo algo estúpido, mas talvez alguém possa me informar o que pode causar esse comportamento:

[Background: o processo é o monogod de mongodb sendo executado como um servidor de configuração (2.4), e eu estou rodando no Debian 6. O processo é executado sob o usuário 'mongodb', e estou emitindo comandos via SSH como um usuário não root]

  • Quando o servidor é inicializado, o processo parece iniciar normalmente (eu posso vê-lo via ps -ef, e há um arquivo mongodb.pid gerado).
  • Se eu tentar parar o processo via sudo /etc/init.d/mongodb stop , a estranheza começa: recebo mongodb apparently not running . (O processo e o pid ainda estão lá).
  • É claro que, se eu tentar sudo /etc/init.d/mongodb start , obtenho 'failed' e um erro no log sobre a porta já em uso, o que é esperado, pois já existe uma instância em execução.
  • Se eu matar -15 o processo e, em seguida, tente sudo /etc/init.d/mongodb start fico mais estranho: No console eu recebo Starting database: mongodb failed! (sem mais informações). Mas ... o processo está rodando agora e nos logs eu não vejo nenhum erro, apenas parece que o processo foi iniciado normalmente.
  • Se eu tentar interromper esse processo com sudo /etc/init.d/mongodb stop , obtenho o mongodb apparently not running .

O script em questão é aqui .

Alguma ideia? Obrigado!

EDIT: Caso seja algo relacionado ao mongo, aqui está o meu mongodb.conf para o servidor de configuração:

configsvr=true

dbpath=/data/configdb

logpath=/var/log/mongodb/mongodb.log
logappend=true

port = 28222
bind_ip = a_public_ip,127.0.0.1,a_private_ip

auth = true
keyFile = /srv/mongodb/keyfile

nohttpinterface = true

fork = true

Além disso, estou vendo Starting database: mongodb failed! durante a tela de inicialização (mas ainda há um processo aparentemente sendo executado normalmente após a inicialização).

    
por UpTheCreek 22.04.2013 / 23:37

1 resposta

1

Se você tiver mais de uma instância em execução nesse servidor ou outra coisa que possa estar colocando outro valor aqui:

PIDFILE=/var/run/$NAME.pid

Isso causaria o problema que você está vendo aqui, ele estará procurando o processo com o ID que está nesse arquivo para determinar se mongod e o PID para parar ao desligá-lo.

Você também deve verificar as permissões nesse arquivo para garantir que o processo possa acessá-lo e atualizá-lo quando estiver inicializando.

Basicamente, precisamos ter valores separados de $ NAME para cada script de init que você está usando para evitar colisões, e certifique-se de que o valor PID correto esteja no arquivo para que o serviço funcione como esperado.

Se tudo estiver bem, suponho que você está enfrentando os problemas descritos aqui:

link

numactl sendo chamado (como deveria quando instalado) parece fazer com que o PID incorreto seja gravado no arquivo PID. Estamos à procura de feedback para resolver este problema, por isso, se puder adicionar a sua experiência (e se tiver uma instalação numctl), isso será apreciado.

    
por 23.04.2013 / 16:11