Существует ли PID для каждого сервиса Tomcat? Если да, можем ли мы определить название сервиса по PID запущенного сервиса Tomcat?

Вопрос или проблема

Я работаю на сервере Linux.

Я хочу узнать, существует ли PID для каждой службы Tomcat, работающей на каком-либо сервере.

Если PID для конкретной службы Tomcat существует, можем ли мы найти имя службы, соответствующее этому PID?

Можем ли мы перечислить все службы Tomcat, работающие на сервере?

ps -ef |grep tomcat

sun 5144 1 0 10:21 pts/1 00:00:06 /Java/jdk/bin/java
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar
-Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start

PID=5144

Вы можете использовать netstat, чтобы захватить PID. Но это будет зависеть от того, работает ли служба на сервере. netstat захватит порт, к которому она привязывается, а также PID и имя программы. Предположим, что Tomcat работает на порту 80, вы можете попробовать следующее:

netstat -tulnp | grep '80'

Чтобы получить все идентификаторы процессов Tomcat с их расположением каталогов, просто выполните следующую команду:

ps -ef | grep ‘tomcat’

Выполнив вышеуказанную команду, вы получите список запущенных процессов Tomcat с их идентификаторами процессов и путями к каталогам и т. д., как показано ниже:

# ps -ef | grep 'tomcat'
tomcat    1477     1  0 Aug02 ?        00:18:16 /usr/java/jdk-17.0.10//bin/java -Djava.util.logging.config.file=/home/tomcatservers/uat-apache-tomcat-10.1.25/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -classpath /home/tomcatservers/uat-apache-tomcat-10.1.25/bin/bootstrap.jar:/home/tomcatservers/uat-apache-tomcat-10.1.25/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcatservers/uat-apache-tomcat-10.1.25 -Dcatalina.home=/home/tomcatservers/uat-apache-tomcat-10.1.25 -Djava.io.tmpdir=/home/tomcatservers/uat-apache-tomcat-10.1.25/temp org.apache.catalina.startup.Bootstrap start
tomcat    1478     1  0 Aug02 ?        00:41:12 /usr/java/jdk-17.0.10//bin/java -Djava.util.logging.config.file=/home/tomcatservers/apache-tomcat-10.1.25/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -classpath /home/tomcatservers/apache-tomcat-10.1.25/bin/bootstrap.jar:/home/tomcatservers/apache-tomcat-10.1.25/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcatservers/apache-tomcat-10.1.25 -Dcatalina.home=/home/tomcatservers/apache-tomcat-10.1.25 -Djava.io.tmpdir=/home/tomcatservers/apache-tomcat-10.1.25/temp org.apache.catalina.startup.Bootstrap start

Ответ или решение

Да, для каждого сервиса Apache Tomcat на сервере Linux существует уникальный идентификатор процесса (PID), что позволяет однозначно идентифицировать каждую запущенную службу. PID — это числовой идентификатор, присваиваемый каждому процессу при его запуске в операционной системе.

Чтобы узнать, какие tomcat-сервисы в настоящее время работают на сервере, и получить их PID, вы можете использовать следующую команду:

ps -ef | grep 'tomcat'

Эта команда вернёт список всех процессов, связанных с Tomcat, включая PID и различные параметры, такие как путь к каталогу (например, -Dcatalina.base) и другие конфигурации, которые могут помочь идентифицировать конкретную установку Tomcat.

Теперь, если вы хотите сопоставить PID с именем службы или местоположением установки, вы можете обратиться к параметрам -Dcatalina.base или -Dcatalina.home, которые обычно включают путь к каталогу Tomcat на сервере. Эти параметры могут помочь вам понять, какой именно экземпляр Tomcat используется, если на сервере развернуто несколько версий или конфигураций Tomcat.

Также можете использовать netstat для определения PID процесса, привязанного к определённому порту. Например, если предполагается, что Tomcat использует порт 80, можно выполнить:

netstat -tulnp | grep ':80'

Это позволит вам увидеть, какой процесс слушает на этом порту, вместе с его PID и именем программы.

С точки зрения SEO-оптимизации, при построении поисковых запросов учитывайте ключевые термины, такие как "PID Tomcat", "поиск PID Tomcat Linux", или "PID томкат как найти". Подобные поисковые фразы могут сделать ваш текст более видимым для целевой аудитории, ищущей конкретные технические решения.

Таким образом, в рамках администрирования сервера на Linux вы имеете все необходимые инструменты для идентификации и мониторинга запущенных процессов Tomcat. Надеюсь, это ответило на ваш вопрос в полном объёме и окажется полезным в вашей дальнейшей работе.

Оцените материал
Добавить комментарий

Капча загружается...