GNU/Linux >> Znalost Linux >  >> Linux

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

V systému Linux musíte být root nebo vlastník procesu, abyste získali požadované informace. Jako takové pro procesy běžící jako jiný uživatel přidejte před sudo je většina toho, co potřebujete. Kromě toho na moderních systémech Linux ss je nástroj, který se k tomu používá:

$ 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 nezapomeňte na 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)

Můžete také použít lsof utility. Musíte být root.

# lsof -i :25
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
exim4   2799 Debian-exim    3u  IPv4   6645      0t0  TCP localhost:smtp (LISTEN)
exim4   2799 Debian-exim    4u  IPv6   6646      0t0  TCP localhost:smtp (LISTEN)

Používám "CentOS 7 minimal", který nemá ani netstat ani lsof . Ale mnoho linuxových distribucí má příkaz socket statistics (tj. ss ).

Zde je příklad provedení:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

Linux
  1. Ruční vytváření kontejnerů:jmenný prostor PID

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

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

  1. Zkontrolujte limit otevřeného FD pro daný proces v Linuxu

  2. Jak získat ID procesu pro ukončení procesu nohup?

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

  1. Jaké je PID v hostiteli procesu běžícího uvnitř kontejneru Docker?

  2. Hledání procesu, který používá určitý port v Linuxu

  3. Jak dosáhnout toho, aby se pro konkrétní proces spustil pouze uživatel, pid a příkaz? (Ubuntu 11.10)