Obtenha o status de execução do mongodb

2

Ter um script onde eu começo / paro vários serviços dependendo do que eu preciso. Por exemplo, Apache, BIND, MySQL, PostFix, Memcached, Tomcat ... e assim por diante.

Dependendo das opções de status para o script, etc. várias ações são tomadas.

Para a maioria, isso funciona bem: (exemplo com o Apache)

if service apache2 status >/dev/null; then
    # ... do some action
fi

Para outros, é preciso usar outros truques como mysqladmin ping .

No entanto, não consigo encontrar uma boa maneira de verificar o status de mongodb .

service mongodb status

Ele tem o mesmo "doença" que o MySQL e rende mongodb stop/waiting e também é avaliado como verdadeiro, mesmo que o serviço não esteja funcionando.

Analisou mongod , mongostat etc. mas não encontrou nenhuma opção para isso.

Uma maneira seria usar ps ou talvez melhor netstat e combinar com grep ou algo parecido, mas imaginando se existe uma maneira melhor (mais nativa / segmentada) de verificar o status. Também poderia grep para stop/waiting , mas não tenho certeza de como isso é confiável, e acho que ele provavelmente poderia quebrar em uma atualização futura.

    
por user13500 20.04.2014 / 19:04

2 respostas

6

Que tal usar apenas pgrep para encontrar o processo, mongod .

$ pgrep mongod
    
por 20.04.2014 / 19:22
1

Eu não tentei o mongodb. Mas a partir dessa resposta aqui , vejo as opções ps como você mencionou na sua pergunta. Além disso, você mencionou apenas service mongodb status . No entanto, você também pode tentar /etc/init.d/mongod status .

verifique com:

   ps -edaf | grep mongo   # "ps" flags may differ on your OS

ou

   /etc/init.d/mongod status

ou

   service mongodb status

para ver se o mongod está sendo executado

verifique o arquivo de log /var/log/mongo/mongo.log para ver se há algum problema relatado

    
por 20.04.2014 / 19:47