Estoy instalando hadoop en mi sistema Ubuntu. Cuando lo inicio, informa que el puerto 9000 está ocupado.
Usé:
netstat -nlp|grep 9000
para ver si existe tal puerto y obtuve esto:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
Pero, ¿cómo puedo obtener el PID del proceso que lo contiene?
Respuesta aceptada:
Tu comando existente no funciona porque Linux requiere que seas root o el propietario del proceso para obtener la información que deseas.
En sistemas modernos, ss
es la herramienta adecuada para obtener esta información:
$ 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á usando actualmente, pero primero debe elevar con sudo
:
$ sudo netstat -nlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
También puede usar lsof:
$ sudo lsof -n -i :80 | grep LISTEN
nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)