GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:trovare il Pid del processo utilizzando una porta specifica?

Sto installando hadoop sul mio sistema Ubuntu. Quando lo avvio, segnala che la porta 9000 è occupata.

Ho usato:

netstat -nlp|grep 9000

per vedere se esiste una tale porta e ho ottenuto questo:

   tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN

Ma come posso ottenere il PID del processo che lo contiene?

Risposta accettata:

Il tuo comando esistente non funziona perché Linux richiede che tu sia root o il proprietario del processo per ottenere le informazioni desiderate.

Sui sistemi moderni, ss è lo strumento appropriato da utilizzare per ottenere queste informazioni:

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

Puoi anche utilizzare la stessa chiamata che stai attualmente utilizzando, ma devi prima elevare con sudo :

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

Puoi anche usare lsof:

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

Linux
  1. Risolvere i problemi utilizzando il filesystem proc su Linux

  2. I 7 spazi dei nomi Linux più utilizzati

  3. Come uccidere un processo in esecuzione su una porta specifica in Linux?

  4. Come ottengo il percorso di un processo in Unix/Linux

  5. Come calcolare l'utilizzo della CPU di un processo tramite PID in Linux da C?

Usando il comando gratuito di Linux

Come trovare un nome di processo utilizzando il numero PID in Linux

Tutorial sull'uso del comando Timeout su Linux

Come trovare il PID e il PPID di un processo in Linux

Come impostare l'ID processo in Linux per un programma specifico

Qual è la definizione di una sessione in Linux?