O Tomcat (provavelmente) é fechado antes que o diretório ROOT seja totalmente preenchido

1

em uma máquina Ubuntu 12.04, Tomcat 7.0.22,

Eu tenho um script bash que copia um arquivo ROOT.war para uma biblioteca específica, ponto no qual o Tomcat o implementa em um diretório chamado ROOT. Algumas linhas depois, o script bash reinicia (fecha e depois roda novamente) Tomcat.

O problema é -

em muitos casos (eu ainda tenho que apontar qual, mas suspeito de máquinas mais lentas) o diretório ROOT não está totalmente preenchido. Eu suspeito que o Tomcat fecha antes de terminar a implantação do ROOT.war. Quando coloco 'sleep 10' após a cópia e antes do reinício, o problema é muito menos comum. Eu poderia colocar em 'sleep 20', mas eu realmente prefiro saber quando e se eu precisar desse atraso de outra maneira não desejado.

A questão é -

como posso obter feedback do Tomcat sobre a conclusão da implantação? Ou então desligar o Tomcat de uma forma que permita concluir a implantação antes de desligar? - Em cli, de preferência disponível para bash scripting, já que a coisa toda deve ser automatizada.

    
por Nahshon paz 21.02.2016 / 09:26

1 resposta

1

Quanto ao Tomcat, você pode ter várias alternativas:

  • Após o tomcat v7, várias versões podem coexistir. Lance-os como ROOT ## 001.war e assim por diante. Implantação sem tempo de inatividade (e reversão) no Tomcat; um passo a passo e uma lista de verificação

  • ROOT.war é na realidade um arquivo zip. Se de alguma forma for crítico para você o tempo de implantação, descompacte-o em um link na mesma árvore, quando o descompactar terminar, mova o link de produção para name_old, altere seu diretório para name e reinicie para minimizar o tempo de inatividade.

  • Dependendo da sua configuração local, você também poderá ver uma linha distinta ao terminar a implantação no catalina.out. Sua milhagem pode variar, não pode recomendar uma mensagem específica.

  • Com a implementação automática, e dependendo da configuração, talvez você nem precise reiniciar o tomcat, mas apenas coloque um novo WAR e exclua a versão anterior. Implantação automática - casos de uso

Também aconselho a ler o Como usar o Deployer .

Devido a preocupações com segurança, também peço que você atualize sua instalação do tomcat. Apache »Tomcat» 7.0.22: Vulnerabilidades de segurança se o seu tomcat não estiver sendo gerenciado pelas atualizações de segurança automatizadas

    
por 21.02.2016 / 12:06

Tags