当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:
查看所有的服务端口(ESTABLISHED
netstat -a
查看所有的服务端口,显示pid号(LISTEN,ESTABLISHED)
netstat -ap
查看某一(**)端口,则可以结合grep命令:
netstat -ap | grep **
如查看**端口,也可以在终端中输入:
lsof -i:**
lsof打开的文件可以是:
- 普通文件
- 目录
- 网络文件系统的文件
- 字符或设备文件
- (函数)共享库
- 管道,命名管道
- 符号链接
- 网络文件(例如:NFS file、网络socket,unix域名socket)
- 还有其它类型的文件,等等
命令参数
- -a 列出打开文件存在的进程
- -c<进程名> 列出指定进程所打开的文件
- -g 列出GID号进程详情
- -d<文件号> 列出占用该文件号的进程
- +d<目录> 列出目录下被打开的文件
- +D<目录> 递归列出目录下被打开的文件
- -n<目录> 列出使用NFS的文件
- -i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
- -p<进程号> 列出指定进程号所打开的文件
- -u 列出UID号进程详情
- -h 显示帮助信息
- -v 显示版本信息
若要停止使用这个端口的程序,使用kill +对应的pid
kill -9 pid
还有一个比较好用的命令,查看**端口:
sudo netstat -lnp | grep **
查看端口号和运行程序:
netstat -atunp | more
查看进程所用端口:
netstat -tlnp|grep **