linux端口号与PID的互相查询

/ Linux / 没有评论 / 2236浏览

最近用linux在玩Tomcat,启动的时候总是会报错(8080/8009/8005)

于是整理了一下网上零乱的查看PID和端口的命令,以备记录。

1.由端口号查询PID号

首先myeclipse报错的时候会提示:“8009端口被占用”,那么你不得不依据此端口去查看该端口下运行的哪些进程

使用命令来查看当前系统下所运行的所有端口情况:sudo netstat -antup

注意:请在sudo的权限下查看,不然有部分的pid是查看不到的,我曾经就是因为没用使用root权限而绕了很多。

[root@dev gitlab_data]# sudo netstat -antup  
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:9100          0.0.0.0:*               LISTEN      682/node_exporter   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 127.0.0.1:9168          0.0.0.0:*               LISTEN      687/ruby            
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1321/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1073/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1072/cupsd          
tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      678/nginx: master p 
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      1443/java           
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      678/nginx: master p 
tcp        0      0 127.0.0.1:9121          0.0.0.0:*               LISTEN      688/redis_exporter  
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      683/prometheus      
tcp        0      0 0.0.0.0:8099            0.0.0.0:*               LISTEN      1443/java           
tcp        0      0 127.0.0.1:9187          0.0.0.0:*               LISTEN      675/postgres_export 

2.用PID查询端口号

若你在知道进程PID的情况下,如何查看该PID的进程情况呢?

使用命令:sudo netstat -antup|grep PID号 来查询该目标端口的开放情况!当然前提是你要知道该PID的号码:

[root@dev gitlab_data]# sudo netstat -antup|grep 682
tcp        0      0 127.0.0.1:9100          0.0.0.0:*               LISTEN      682/node_exporter 

3.用进程名查询PID号

有时候一些常用的进程我们都很熟悉,那么此时我们就可以用ps命令来查询目标的PID号了:

使用命令:sudo ps -ef|grep 进程名 来查看该进程的PID是很方便的。可是前提是你要知道该进程的名,比如若是一些系统后台进程则不能查看到。

[root@dev gitlab_data]# sudo netstat -antup|grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1073/sshd           
tcp        0 504736 192.168.0.203:22        192.168.0.204:39338     ESTABLISHED 31076/sshd: root@no 
tcp        0     52 192.168.0.203:22        192.168.0.2:57385       ESTABLISHED 29213/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      1073/sshd