关于 lsof -i 的问题

2017-10-21 01:55:38 +08:00
 chenqh

我有一个进程要使用 9877 端口,
在关闭进程再启动进程的时候,我经常会遇到这种情况
bind error: address already in use
但是使用 lsof -i :9877,却没有找到对应的进程
要等一分钟到两分钟左右 ,才可以重新启动进程,
就好像有延时一样
这是什么问题?有什么办法能够解决这种 bind error: address alreay in use,而不是只能靠等吗?

2715 次点击
所在节点    Linux
5 条回复
vcfvct
2017-10-21 02:17:38 +08:00
加 sudo 试试,我机器上的 McAfee 的 8081port 就是需要 sudo lsof 才能出来!
chenqh
2017-10-21 02:20:59 +08:00
@vcfvct 我等下试下
chenqh
2017-10-21 02:28:32 +08:00
@vcfvct 我这边要使用 "netstat -anp | grep 9877"才出来,可能是因为处于 TIME_WAIT 状态的原因
iwtbauh
2017-10-21 10:49:23 +08:00
@chenqh 恩,我记得是让服务器程序使用 setsockopt(2) 系统调用开启 SO_REUSEADDR 选项即可解决
如果程序没有相应开关必须修改源代码重新编译
mogging
2017-10-21 12:48:09 +08:00
@chenqh 涨姿势

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/399407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX