如何通过程序停止使用特定端口的进程


How to stop processes using a particular port programatically

我有一个进程在Linux机器的端口上运行。我想做的是不断检查端口是否正常。该端口是一个TCP端口,可以从另一个Linux盒子接收数据,但当访问数据时,它会崩溃并卡在上面:

"Address already in use" message

我想检查它是否确实崩溃并停止使用该端口的进程,以便释放该端口并重新启动进程。我需要使用php或bash脚本来完成这项工作。

好吧,经过一些谷歌搜索,我来到了monit。此工具可以安装在服务器上,并可以监视您选择的程序,如果它们没有运行则启动它们,或者如果没有相应响应则重新启动它们。。。

来自站点:

如果sendmail没有运行,Monit可以再次自动启动sendmail,或者如果apache使用了太多资源(例如,如果DoS攻击正在进行中),则Monit可以停止或重新启动apache并向您发送警报消息。

sudo fuser-k 80/tcp

sudo fuser-k 443/tcp

特别是为了回答这个问题,而这种方法只是一个混乱的服务器组织的补丁。

话虽如此,但我想它应该在4年后修复。