前言(跳过真正的问题):我有一个应用程序正在监听端口 843。此进程以 root 身份运行。有时终止进程(使用 ^C)会使其挂起很长时间(永远?)。由于不耐烦,我用 终止它kill -9
。现在的问题是端口 843 仍在监听,即使那里没有应用程序。
查看lsof -i
显示没有进程在监听 843,即使以 root 身份运行也是如此。netstat -a
但是查看显示它正在监听,甚至有些连接没有正确断开:
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp6 0 0 localhost.843 localhost.60927 CLOSE_WAIT
tcp6 386 0 localhost.843 localhost.60926 CLOSE_WAIT
tcp6 0 0 localhost.843 localhost.60925 CLOSE_WAIT
tcp6 386 0 localhost.843 localhost.60924 CLOSE_WAIT
tcp46 0 0 *.843 *.* LISTEN
tcp4 0 0 *.843 *.* LISTEN
类似的问题建议我首先不要陷入这种情况。这是个不错的建议,但有点难,因为这不是我的应用程序。此外,无论如何,摆脱这种情况会很好。
有什么方法可以让我摆脱这种困境而无需重启?我以 root 身份运行它是否重要?(我只需要 root 来监听低编号端口,如果不安装 authbind 之类的软件,我找不到其他方法)。