¿Encontrando el PID del process usando un puerto específico?

Estoy instalando hadoop en mi sistema Ubuntu. Cuando lo inicio, informa que el puerto 9000 está ocupado.

Solía:

netstat -nlp|grep 9000 

para ver si existe ese puerto y obtuve esto:

  tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 

Pero, ¿cómo puedo get el PID del process que lo contiene?

En Linux, debe ser root o el otro usuario para get información del process para processs que se ejecutan como otros usuarios, por lo que anteponer sudo es más de lo que necesita. Además de eso, en los sistemas Linux modernos, ss es una herramienta para usar para hacer esto:

 $ sudo ss -lptn 'sport = :80' State Local Address:Port Peer Address:Port LISTEN 127.0.0.1:80 *:* users:(("nginx",pid=125004,fd=12)) LISTEN ::1:80 :::* users:(("nginx",pid=125004,fd=11)) 

También puede usar la misma invocación que está utilizando actualmente, pero recuerde sudo :

 $ sudo netstat -nlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx 

También puedes usar lsof:

 $ sudo lsof -n -i :80 | grep LISTEN nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN) 

También puedes usar la utilidad lsof . Necesita ser root

 # lsof -i :25 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME exim4 2799 Debian-exim 3u IPv4 6645 0t0 TCP localhost:smtp (LISTEN) exim4 2799 Debian-exim 4u IPv6 6646 0t0 TCP localhost:smtp (LISTEN) 

Estoy usando "CentOS 7 minimal" que no tiene ni netstat ni lsof . Pero muchas distribuciones de Linux tienen el command de statistics de socket (es decir, ss ).

Aquí hay un ejemplo de ejecución:

 # ss -tanp | grep 6379 LISTEN 0 128 127.0.0.1:6379 *:* users:(("networkingis-server",pid=2531,fd=4)) 

También puedes usar fuser :

 fuser -v -n tcp 22 

La salida :

  USER PID ACCESS COMMAND 22/tcp: root 598 F.... sshd 

Ejecutar el command con sudo le daría el PID . En mi máquina de desarrollo obtengo:

 $ netstat -nlp | grep 8080 

tcp6 0 0 ::: 8080 ::: * ESCUCHAR

 $ sudo netstat -nlp | grep 8080 

tcp6 0 0 ::: 8080 ::: * LISTEN 16449 / java

Y como se menciona en otras respuestas, también puede usar los commands ss o lsof .