知识要点
lsof -i:port
netstat -anp | grep port
问题描述
我们有时会在服务启动的时候遇到端口被占用的情况,比如我下面在启动 BERT Server 端的时候,报了 ERROR:"Address already in use",这种状况的话,服务端启动就会失败结束
ERROR:Address already in use解决方案
首先我们查阅服务启动时使用的端口,如图服务启动配置所示
服务启动配置那么现在让我们来查看一下所有端口的使用情况,方式是命令:lsof -i
查看所有端口的使用情况我们通过端口信息看到 5555 端口正在监听状态,但是该端口正是我们服务启动的端口,所以不出意外的导致占用情况
当然端口使用的列表可能会很长,找出来就会很麻烦,所以我们也可以更加直接的使用 lsof -i:5555 来查询 5555 端口的使用情况,如下图所示
端口 5555 的使用情况把查询到被占用端口相对应的进程 kill 掉就好了,这个占用是由于刚才网络不稳定,ssh 断线导致的异常占用
处理掉这些进程以后,重启 BERT 服务端就可以了。我们看到 BERT Server 端成功启动,如下所示
BERT 服务端成功启动另外还有一种查询方式是 netstat -anp | grep 5555,我们正好用来看一下服务端启动后的端口占用
当然这个 lsof -i:5555 查询的结果是相同的
BERT 服务端成功启动后的端口占用情况
网友评论