GNU/Linux >> Tutoriales Linux >  >> Linux

Linux – ¿Encontrar el Pid del proceso usando un puerto específico?

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)

Linux
  1. Solucionar problemas con el sistema de archivos proc en Linux

  2. ¿Cómo matar un proceso en Linux usando el comando?

  3. Encontrar el proceso que está usando un determinado puerto en Linux

  4. Linux:averigüe qué proceso está utilizando toda la RAM?

  5. ¿Cuál es la definición de una sesión en Linux?

Usando el comando libre de Linux

Cómo encontrar un nombre de proceso usando el número PID en Linux

Tutorial sobre el uso del comando Timeout en Linux

Cómo encontrar el PID y PPID de un proceso en Linux

cómo usar netstat en un puerto específico en Linux

¿Encontrar el PID del proceso usando un puerto específico?