¿Cómo puedo saber qué service se está ejecutando en un puerto en particular en Linux?

Estoy tratando de ejecutar el server weblogic en mi máquina Linux y me aparece el siguiente error:

ERROR: transport error 202: bind failed: Address already in use ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) 

Creo que el error significa que el puerto del depurador que por defecto es 8453 ya lo tiene otro service. ¿Cómo puedo averiguar qué service se está ejecutando en un número de puerto parcial?

PD: utilicé el command netstat pero eso muestra todos los services que ocupan todos los puertos. Aquí estoy interesado solo en un puerto en particular.

Dos paths:

  • lsof -i :port -S
  • netstat -a | grep port

Puede hacer man lsof o man netstat para get la información necesaria. Reemplace el port por el número de puerto que desea search.

Puede usar fuser o lsof es decir:

 fuser 8453/tcp lsof -i TCP:8453 

Si desea get más información del fuser , también puede usar el indicador -v , es decir: fuser -v 8453/tcp

por lo que vale … dependiendo de la versión de netstat (específicamente GNU netstat ) que tenga, puede usar

 netstat -punta | grep <port> 

esto le mostrará las conexiones en los estados ESTABLECIDO y ESCUCHADO UDP y TCP e ignorará los sockets locales de UNIX. el resultado final es un set de resultados bonito, orderado y pequeño.

la bandera -p le dará la identificación del process y el nombre del process de lo que sea que esté usando ese puerto

la bandera -u muestra udp

la -n es para direcciones numéricas

el indicador -t muestra tcp

el -a muestra los zócalos de escucha y de no escucha

En centos

 /usr/sbin/lsof -i tcp:8453 (lsof -i protocol:port) 

En ubuntu

 /usr/bin/lsof -i tcp:8453 

O bien, resultados limitados de netstat usando filters.