Mostrando múltiples procesos java con diferentes pids

usuario3710949

Quiero buscar todos los puertos en ejecución con el nombre del servicio, pero algunos nombres de puertos son java.

Los puertos dados a continuación se obtienen usando ansible.

ansible -m listen_ports_facts --user = username --become --ask-Become-pass --tree portdir / all

tcp: 8011: java

tcp: 8012: java

tcp: 8013: java

¿Cómo puedo hacerlo? Por favor sugiera lo mismo.

Lo he intentado con ps -aux | grep "PID" y descubrió que hay una ruta de directorio.

TRW

Debido a que Java es como una máquina virtual, realmente no puede ver lo que está sirviendo el proceso de Java sin conocimiento sobre el proceso en sí. Normalmente, ejecuta una máquina virtual Java con parámetros, algo como java -jar /path/to/my/program.jaro en el caso de Wildfly, etc., algunos parámetros muestran una ruta hacia standaloneo lo que sea. Este parámetro puede darle una pista sobre qué está ejecutando JavaVM. Pero eso no es fácil de filtrar de manera general.

Además, algunos procesos de Java están abriendo varios puertos bajo el mismo PID (como Wildfly abre puertos para servir el Java-Webcontainer y también para algunas interfaces de usuario web de administración, etc.).

Por lo tanto, la respuesta rápida es, no, no puede averiguar en general qué es una máquina virtual Java examinando los puertos. Pero tal vez, en el caso de SpringBoot, podría hacer coincidir el nombre del servicio con el valor del parámetro de -jar <program>.jary luego es el nombre del servicio. Además, por ejemplo, en el caso de Tomcat, no hay un parámetro -jar sino un nombre de clase como java -cp ... -D..=.. org.apache.catalina.startup.Bootstrap .., lo que le muestra que se trata de un Tomcat (nombre en clave Catalina). No estoy seguro de si hay una forma fácil / exacta de identificar el parámetro de nombre de clase ...

En algunos casos, esto no le ayudará, porque podría haber varios puertos y tal vez algunos PID sirvan lo mismo <program>. O vive con eso (por ejemplo, dice, está sirviendo un Wildfly o un Tomcat en el puerto 8011. Eso es genérico.

Si necesita saber qué hay en ese puerto, podría ser posible analizar la configuración de esos programas (lo que significa que necesita conocimiento sobre la estructura del proceso), por ejemplo, un Tomcat lo almacena en Webcontainers en /webapps/*.war . Y debido a que podría haber más de un servicio (guerra) ejecutándose allí, el puerto podría no ser exclusivo de "un" servicio.

Si sus procesos Java utilizan siempre el mismo puerto, puede agregar estos puertos /etc/serviceso hacer un dict en su entorno con key = port, value = servicename para mapear el mapeo puerto-servicename estáticamente. También puede agregar una advertencia, cuando un nombre de servicio de puerto no coincide.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Htop mostrando múltiples procesos java con diferentes pids

Workmanager con múltiples procesos

Workmanager con múltiples procesos

múltiples procesos con ProcessBuilder

Múltiples procesos con vfork ()

¿Cómo ejecutar múltiples procesos Tor a la vez con diferentes IP de salida?

Generando múltiples procesos con Python

Lista de procesos de elementos 'N' con múltiples subprocesos

Problemas de conexión con SQLAlchemy y múltiples procesos

Trabajar con objeto deque en múltiples procesos

Comunicación entre múltiples procesos con zmq

Comparando múltiples datalistas y mostrando diferentes resultados

¿Algún enfoque factible para usar múltiples GPU, múltiples procesos con tensorflow?

FirebaseFirestore múltiples procesos

Iterar múltiples dictados con diferentes claves

Esperando múltiples tareas con diferentes resultados

Realice múltiples solicitudes con diferentes datos

Crear múltiples notificaciones con diferentes intenciones

Una clase con múltiples declaraciones diferentes

Java Signature.sign () con SHAwithECDSA produce diferentes resultados en múltiples ejecuciones

Fusionando múltiples flujos en java 8 con diferentes tipos y longitudes

mapear de cadena a múltiples cadenas diferentes y agregar a la lista con la secuencia de Java

Fusionando múltiples flujos en java 8 con diferentes tipos y longitudes

Asignación de múltiples objetos Java a diferentes filas en la misma tabla con Hibernate

Python, muestra la salida de múltiples procesos en diferentes partes de la terminal

Python, muestra la salida de múltiples procesos en diferentes partes de la terminal

¿Cuál es el método más seguro para guardar archivos generados por diferentes procesos con multiprocesamiento en Python?

Cómo sincronizar 4 procesos diferentes con Mutex o EventWaitHandler

Pruebe la coherencia en diferentes ejecuciones / procesos con pytest

TOP Lista

CalienteEtiquetas

Archivo