我在本地服务器上运行一个服务器。它偶尔会冻结,我需要使用 Ctrl+Z 来取消它。问题是,在我强制关闭它之后,它使用的端口仍然对它开放,当我重新启动程序时它无法回收该端口。所以我需要重新启动整个服务器。
有什么办法可以强制关闭该端口,以便服务可以在重新启动时打开它,或者刷新所有端口?
谢谢,
马克斯
答案1
ctrl-z 是暂停。
您可能需要 ctrl-c。
您还可以向单个 PID 发送信号。例如,如果我想关闭端口 80,我可以先使用 lsof 查询打开的文件:
lsof -i tcp:80
httpd 24579 根 3u IPv6 142712111 TCP *:http (侦听)
然后发送终止信号:
kill -9 24579
答案2
Ctrl+Z只是暂停你的工作,将其置于后台,因此端口仍然打开。只需改用Ctrl+C即可。
对于您来说,使用以下命令找出正在监听此端口的进程:
# netstat --protocol=ip -nlp | grep :port
并终止 PID。无需重启服务器。