GNU/Linux >> Znalost Linux >  >> Linux

Linux – Nalezení PID procesu pomocí konkrétního portu?

Instaluji hadoop na svůj systém Ubuntu. Když jej spustím, hlásí, že port 9000 je zaneprázdněn.

Použil jsem:

netstat -nlp|grep 9000

zjistit, zda takový port existuje, a dostal jsem toto:

   tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN

Ale jak mohu získat PID procesu, který jej drží?

Přijatá odpověď:

Váš stávající příkaz nefunguje, protože Linux vyžaduje, abyste byli root nebo vlastník procesu, abyste získali požadované informace.

Na moderních systémech ss je vhodným nástrojem k získání těchto informací:

$ 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))

Můžete také použít stejné vyvolání, jaké právě používáte, ale nejprve musíte provést zvýšení pomocí sudo :

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

Můžete také použít lsof:

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

Linux
  1. Jak získám cestu k procesu v Unixu / Linuxu

  2. Jak vypočítat využití CPU procesu pomocí PID v Linuxu z C?

  3. Jak nastavit ID procesu v Linuxu pro konkrétní program

  1. Odstraňte problémy s použitím souborového systému proc na Linuxu

  2. jak používat netstat na konkrétním portu v Linuxu

  3. Jaká je definice relace v linuxu?

  1. Poslouchejte rádio na linuxovém terminálu

  2. 7 nejpoužívanějších jmenných prostorů Linuxu

  3. Jak zabít proces běžící na konkrétním portu v Linuxu?