大家在Linux系統中排查問題,經常會遇到根據進程名查端口號,或者根據端口號查進程名,下邊針對這兩種情況總結一下:
一,根據進程名查對應的端口號
netstat -tlnp | grep processname
二,根據端口號查對應的進程名
(一)使用lsof命令,以查找占用端口80為例,用法如下:
[root@localhost sbin]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 8246 root 6u IPv4 64233 0t0 TCP *:http (LISTEN)
nginx 8247 nobody 6u IPv4 64233 0t0 TCP *:http (LISTEN)
[root@localhost sbin]#
(二)使用netstat命令,以查找占用80端口為例,用法如下:
[root@localhost sbin]# netstat -nlp|grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8246/nginx
[root@localhost sbin]#
(三)使用ps命令,可以查看已知進程PID的執行目錄的詳細信息
[root@localhost sbin]# ps -ef | grep 8246
root 8246 1 0 14:56 ? 00:00:00 nginx: master process ./nginx
nobody 8247 8246 0 14:56 ? 00:00:00 nginx: worker process
root 8461 2679 0 15:26 pts/1 00:00:00 grep 8246
[root@localhost sbin]# ps -x | grep 8246
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
8246 ? Ss 0:00 nginx: master process ./nginx
8463 pts/1 S+ 0:00 grep 8246
[root@localhost sbin]#