Diferença na saída entre o script init.d e a chamada de serviço para tomcat6

1

Eu atualizei uma máquina 12.04 para 14.04 usando do-release-upgrade . Tudo correu bem, como de costume, mas esta máquina em particular tem um problema muito estranho depois.

Veja a saída de service tomcat6 status :

root@box:/etc# service tomcat6 status
 * Tomcat servlet engine is running with pid 8763
root@box:/etc# service tomcat6 status
 * Tomcat servlet engine is running with pid 8763
root@box:/etc# service tomcat6 status
 * Tomcat servlet engine is running with pid 8763
root@box:/etc# service tomcat6 status
 * Tomcat servlet engine is running with pid 8763

Consistente e correto. ( tomcat6 está realmente sendo executado como PID 8763).

No entanto, o script /etc/init.d/tomcat6 informa consistentemente um resultado diferente:

root@box:/etc# /etc/init.d/tomcat6 status
 * Tomcat servlet engine is not running, but pid file exists.
root@box:/etc# /etc/init.d/tomcat6 status
 * Tomcat servlet engine is not running, but pid file exists.
root@box:/etc# /etc/init.d/tomcat6 status
 * Tomcat servlet engine is not running, but pid file exists.
root@box:/etc# /etc/init.d/tomcat6 status
 * Tomcat servlet engine is not running, but pid file exists.

O que é estranho, porque devido à falta de um script upstart , o script init.d é realmente o que a chamada service usa para obter informações. Remover o script init.d confirma que:

root@box:/etc# mv /etc/init.d/tomcat6 /root/
root@box:/etc# service tomcat6 status
tomcat6: unrecognized service
root@box:/etc# mv /root/tomcat6 /etc/init.d/
root@box:/etc# service tomcat6 status
 * Tomcat servlet engine is running with pid 8763

Infelizmente, o módulo Puppet que estou usando chama /etc/init.d/tomcat6 e, como tal, informa que o serviço está inativo a cada 30 minutos e executa uma reinicialização. A atualização do módulo Puppet para usar uma chamada service é a solução imediata e óbvia, mas isso não explica ou conserta o fato de que o mesmo script pode ter dois resultados possíveis, com base em como o script é chamado.

Alguém pode explicar por que isso está acontecendo e / ou me dizer como recuperar os resultados em um estado consistente?

    
por Remco Overdijk 18.04.2016 / 13:32

0 respostas