Tomcat - Como funciona o setenv.sh?

2

Eu não acho que minha pergunta tenha sido feita antes (não exatamente de qualquer forma, se tiver, desculpas). Eu estou usando o Tomcat 7 no CentOS 7.

No meu arquivo tomcat / bin / setenv.sh eu configurei:

export TEST="test"

Então eu inicio o tomcat via Terminal executando tomcat / bin / startup.sh

Então eu corro (não em um script, apenas no Terminal depois de ter executado o script de inicialização do Tomcat):

echo $TEST

A minha pergunta: Devo poder "fazer eco" da variável TEST? Devo ser capaz de ver que a variável TEST foi definida para o que eu quero que seja (teste)?

    
por Rookie 08.09.2017 / 14:32

2 respostas

4

Não.

O script startup.sh pode estar obtendo o arquivo setenv.sh para obter o valor da variável, mas se o fizer, a variável só será definida dentro do ambiente do script startup.sh , e não em seu shell interativo. / p>

Se você quiser ver o que está acontecendo quando você executa startup.sh , primeiro determine qual interpretador de shell ele está usando (veja a #! -line no topo do arquivo).

Se for bash , execute-o com

$ bash -x tomcat/bin/startup.sh

(por exemplo, adicione -x à linha de comando)

Isso ativará o rastreamento do script.

    
por 08.09.2017 / 14:47
3

Não. startup.sh é executado em um processo diferente do processo no qual você o inicia. Quando um script é iniciado, ele é executado em um novo subshell do shell atual. E embora seja verdade que uma sub-sela herda o ambiente de seu pai durante a inicialização, não haverá propagação de mudanças, em nenhuma direção, após esse período. Portanto, quando startup.sh faz . setenv.sh 1 , as alterações do ambiente não são visíveis em sua linha de comando.

Se, em vez disso, você executasse . startup.sh , as coisas seriam diferentes, pois tudo estaria acontecendo no mesmo shell. Mas isso não será saudável para sua startup Tomcat!

1 Na verdade, startup.sh invoca catalina.sh e, em seguida, origina setenv.sh (pelo menos no Tomcat 7.x), mas para manter as coisas simples, eu estou ignorando esse fato, já que não t mudar o resultado.

    
por 08.09.2017 / 14:46