我有一个应用程序,当客户端请求时,它会吐出时间。我没有使用端口 13 的权限,所以我把它放在一个非常高编号的端口上。现在我无法关闭该端口,也无法将该端口用于其他任何用途。我如何找到守护进程来关闭它(ps -ef 不显示它)并关闭端口?我无法使用“lsof”,因为我使用的是 Redhat。
答案1
现在我无法关闭该端口,也无法将该端口用于其他用途。如何找到守护进程来关闭它(
ps -ef
不显示它)并关闭该端口?我无法使用,lsof
因为我使用的是 Redhat。
其他人指出了上面的一个错误。第二个错误是不能“杀死”端口。端口不是进程。第三个错误是假设你有一些ps -e
不会向你展示的秘密魔法进程。如果没有列出进程,那么除非出现一些模糊的极端情况没有流程。第四个错误,具有讽刺意味的是,也许是最严重的错误,是首先假设与端口的连接仍然打开。
一个更普通的解释,符合所报告的行为,而不需要神奇的隐形进程,就是进程退出,但由于 TCP 连接仍处于 状态,所以尚无任何东西可以绑定到端口TIME_WAIT
。-o
选项netstat
是你的朋友。 事实上 是-p
选项。
顺便说一句,SuperUser 并不是询问如何编写此类守护进程的合适场所。而 StackOverflow 则反复回答了这个问题及其相关问题。
进一步阅读
- Vic Metcalfe、Andrew Gierth 等人(1998-05-21)。“编写服务器应用程序 (TCP/SOCK_STREAM)”。使用 C 语言编写 UNIX 套接字编程 — 常见问题解答。
- https://stackoverflow.com/questions/14388706/