强制销毁端口 80 上的进程

强制销毁端口 80 上的进程

这可能是一次冒险,但我无论如何都会尝试。

我需要运行一个应用程序,localhost:80但发现它被阻止了。当我转到时localhost,我看到了以下内容:

在此处输入图片描述

显然这是我在使用 Java Servlet 时想到的。

更重要的是,当检查正在运行的进程时:80,我只会看到httpd进程。当在 ActivityMonitor 中查看我当前的所有活动进程时,没有什么让我感到不寻常的。我还在整个机器中递归搜索了“它有效!”文本,但什么也没有弹出(我也进行了其他搜索,但没有找到任何结果)。该 servlet 似乎在启动时运行,并且已检查了我所知道的所有启动菜单,并且再次没有发现任何异常。

似乎一个进程正在运行,但是运行该进程的文件却消失了,我知道这是不可能的。

我的问题是,是否有方法强制终止正在运行的任何东西:80(可能性极小,因为我已经提到过它没有出现在任何过程中)。另外,我是否可以进行更递归的搜索?我grep在 Finder 中进行了基本搜索和 SSD 搜索,但都没有结果……

答案1

正如它已经指出的那样,“它起作用了!”是来自安装在您系统上的 Apache Web 服务器的默认网页的文本。您可以通过运行来自行验证:sudo lsof -n -iTCP:80 | grep LISTEN。Finder 通常不会显示/etc文件夹的内容,因此您需要单击转到菜单(在 Finder 中),然后选择Go to Folder手动输入的位置/etc/apache2。在那里您可以找到 apache 的配置文件,您可以在“DocumentRoot”节下找到 Web 目录,然后如果您转到该位置,您将找到index.html包含“It works!”的文件。

如果正在运行的 Apache 实例阻止在端口 80 上运行您的 servlet(这显然是冲突的),则将默认 Apache 的端口 80 更改为其他端口,比如端口 8080,然后从终端重新启动 Apache 服务;sudo /usr/sbin/apachectl restart

答案2

以下命令将停止apachectl正在运行的进程并释放端口 80。

   sudo /usr/sbin/apachectl stop

相关内容