linux下根据端口号查询对应进程
我们经常使用netstat -lnp可以查询对应端口跟进程,但是有些端口是在netstat -lnp里却没显示对应的进程pid,如果我们使用某个端口已经被占用,需要找到对应占用端口的进程关闭之类的,此时可以通过lsof来查询对应端口的对应进程pid号,
[wei@vm-cbu-qa-168-13 web-deploy]$ lsof -Pnl +M -i6 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEcfservd 5513 0 4u IPv6 17813 TCP *:5308 (LISTEN)java 13334 0 64u IPv6 85851503 TCP 10.20.168.13:46591->10.20.145.12:57126 (ESTABLISHED)java 13334 0 65u IPv6 86276005 TCP 10.20.168.13:34506->10.20.172.85:80 (CLOSE_WAIT)java 13334 0 66u IPv6 86313523 TCP 10.20.168.13:36320->10.20.172.85:80 (CLOSE_WAIT)java 13334 0 67u IPv6 86382763 TCP 10.20.168.13:52680->10.20.172.85:80 (CLOSE_WAIT)java 13334 0 71u IPv6 85851508 TCP *:58126 (LISTEN)
1) -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。
2) -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。
3) -l :这个选项约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时,这个选项就很有用。
4) +M :此选项支持本地TCP和UDP端口映射程序的注册报告。
5) -i4 :仅列示IPv4协议下的端口。
6) -i6 : 仅列示IPv6协议下的端口。