Por que o Tomcat não aparece quando eu executo a saída do netstat para 8080?

0

Eu estou fazendo o seguinte para determinar se o Tomcat está sendo executado:

$ whoami
voops
voops@esavo00:~/apache-tomcat-7.0.57/bin#
$ ps -ef | grep -i tomcat | grep -v grep
voops     8973     1  0 Apr22 ?        00:00:40 /usr/local/jdk1.7.0_67/bin/java -Djava.util.logging.config.file=/home/voops/apache-tomcat-7.0.57/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/voops/apache-tomcat-7.0.57/endorsed -classpath /home/voops/apache-tomcat-7.0.57/bin/bootstrap.jar:/home/voops/apache-tomcat-7.0.57/bin/tomcat-juli.jar -Dcatalina.base=/home/voops/apache-tomcat-7.0.57 -Dcatalina.home=/home/voops/apache-tomcat-7.0.57 -Djava.io.tmpdir=/home/voops/apache-tomcat-7.0.57/temp org.apache.catalina.startup.Bootstrap start

Minha leitura do acima é que o tomcat está sendo executado como um processo de propriedade do usuário atualmente conectado (voops). Eu então faço um:

$ netstat -a | grep 8080

.. mas nada é grepped.

Meu arquivo server.xml declara o seguinte elemento:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

Isso é o que o netstat -an | grep 8080 mostra:

$ netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN
tcp        1      0 131.176.161.23:44535        131.176.161.23:8080         CLOSE_WAIT
tcp        1      0 131.176.161.23:54600        131.176.161.23:8080         CLOSE_WAIT
tcp        1      0 131.176.161.23:51667        131.176.161.23:8080         CLOSE_WAIT
tcp        1      0 131.176.161.23:50348        131.176.161.23:8080         CLOSE_WAIT         
...  5 more lines similar to the one above
    
por Marcus Junius Brutus 23.04.2015 / 09:27

1 resposta

3

Caso os comentários para a pergunta não estejam claros o suficiente, estou adicionando uma resposta aqui, junto com alguns ponteiros não mencionados nesses comentários.

"Por que o Tomcat não aparece quando eu faço grep na saída do netstat para 8080?"
Resposta curta:
Porque o número da porta 8080 está sendo convertido para string http_alt, que não corresponderá ao padrão grep.

Detalhes:
A partir do link , podemos ver que a porta 8080 é oficialmente "HTTP alternate (http_alt) - normalmente usada para proxy da Web e servidor de armazenamento em cache, ou para executar um servidor da Web como um usuário não-root ".
Basicamente, netstat mostrará "http-alt" para a porta 8080 com exibição padrão.

Ao usar netstat -n , os números da porta (como 8080 para http-alt) serão exibidos, & você será capaz de fazer isso. O ID do processo do processo de escuta será mostrado ao executar o netstat com -p.

Portanto, use netstat -pa | grep http-alt ou netstat -pan | grep :8080 para ver a entrada do tomcat.

Como alternativa, use lsof -P | grep :8080 , que também mostrará a ID do processo & Nome do processo que possui o soquete que está escutando na porta 8080. Aqui -P impedirá que os números de porta sejam convertidos em strings (como 8080 para http-alt)

Outra alternativa é nmap $SERVER ou namp localhost , que mostrará todas as portas abertas, incluindo 8080, quando o tomcat estiver funcionando bem.

    
por 21.01.2016 / 07:32