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 obtener el PID del proceso que lo retiene?

netstatEl comando podría funcionar en muchos sistemas operativos para permitirle obtener eso, solo tiene que encontrar los argumentos que garanticen que mostrará pids a lo largo de cada puerto abierto conocido.Respuestas:
En Linux, debe ser root o el propietario del proceso para obtener la información que desea. Como tal, para los procesos que se ejecutan como otro usuario, la preparación previa
sudoes la mayoría de lo que necesita. Además de eso, en los sistemas Linux modernos,sses una herramienta para usar para hacer esto:También puede usar la misma invocación que está usando actualmente, pero recuerde
sudo:También puedes usar lsof:
fuente
-popción es para protocolo en lugar de proceso. Ver esta preguntaFinding the PID of the process using a specific portsudoen la parte superior.lsof -ti tcp:80También puedes usar la
lsofutilidad. Necesito ser root.fuente
establishedconexiones, no solo procesos que sonlistening.lsof -i :25 -Fpque produce resultados similaresp1234.Estoy usando "CentOS 7 minimal" que no tiene ni
netstatningunolsof. Pero muchas distribuciones de Linux tienen el comando de estadísticas de socket (es decirss).Aquí hay un ejemplo de ejecución:
fuente
ss -pntl 'sport = :6379'Ejecutar el comando con
sudole daría elPID. En mi máquina de desarrollo obtengo:Y como se menciona en otras respuestas, también puede usar
ssloslsofcomandos o .fuente
sudoID de proceso de visualizaciónsudo netstat -nlp | grep 34157todavía se muestra en-lugar de PID?También puedes usar
fuser:La salida :
fuente
sudosi el proceso ofensivo también se inició consudo