杀死端口 80 上的未知自重启服务器 Mac OSX
Killing an unknown self restarting server on port 80 Mac OSX
我在端口 80 上有一个服务器 运行ning,但我不知道它是什么,也不知道它来自哪里。当我运行
sudo lsof -i :80 | grep LISTEN
我明白了
httpd 80 root 5u IPv6 0x91f5a9de62859cfd 0t0 TCP *:http (LISTEN)
httpd 694 _www 5u IPv6 0x91f5a9de62859cfd 0t0 TCP *:http (LISTEN)
我尝试使用 PID 输入获取进程名称,但我在 return 中得到的只是 "httpd" 或 "FOREGROUND"。
当我终止 PID 时,进程只是用一个新的 PID 重新启动。我想我将不得不在发布时停止它。
如何在启动时停止此服务器 运行ning?
如果有帮助,我正在尝试释放端口 80 以在 MAMP 上使用 apache 服务器。
这只是一个猜测,但它可能是 apache 的内置版本,由 launchd(OS X 的守护进程管理器)启动(并重新启动)。默认情况下它是禁用的,但可能已经以某种方式启用了。您可以尝试禁用它:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
如果没有这样做(它会说类似 "Could not find specified service"),您可以通过查找主进程的 PID(那个运行 作为 root,而不是 _www):
sudo launchctl list | grep <masterPID>
这不一定会告诉您确切的情况,但可能会为您指明正确的方向。
正如 Gordon 所建议的,这是 Apache 网络服务器的内置版本。
您可以使用
停止它
sudo apachectl stop
顺便说一句,这个网络服务器的配置可以在 /etc/apache2/httpd.conf 目录中找到。
我经常遇到这种情况。
正如@Gordon Davisson 所解释的那样,launchdeamon 进程很可能与您设置的服务发生冲突。
绝对停止 apachetl 服务器。
sudo apachetl -k stop
尝试找出所有的httpd进程,应该是最后一个
sudo lsof -i :80 // without grep
然后拿到第一个进程(大概率在1000s)应该也是最低的。
sudo kill <firstHttpdPID>
这应该会终止该 httpd 实例的所有进程 运行,然后您只需重新启动您的服务器即可。
不过必须先停止它,否则它会再次 运行。
Mac OSX 与 Apache 捆绑在一起,但它已被停用。您可能以某种方式激活了它。就我而言,我之前安装了 XAMPP 并在 /etc/apache2/httpd.conf
中配置了一些东西,这些东西将我的端口 localhost:80
引导到带有 [=16 的 html 页面=].
TLDR,解决方案是停用 Apache2 服务器。
转到您的终端,然后输入此
sudo apachetl -k stop
在我的例子中,returns 如下:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using Shafies-MacBook-Pro.local. Set the 'ServerName' directive globally to suppress this message
httpd (no pid file) not running
如果您在浏览器中输入 localhost
,端口 80 将不再活动,您将不会再看到 It Works!
。
关于上下文,我很久以前就删除了 XAMPP,但不知道我的 localhost:80
仍然有效。我无法将虚拟域 - posts.com
重定向到我的 kubernetes YAML 配置文件的本地主机端口。
这是我的 ingress-srv.yaml
文件:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: posts.com
http:
paths:
- path: /?(.*)
backend:
serviceName: client-srv
servicePort: 3000
并且我通过在位于 /etc/hosts
的主机文件中添加以下行来欺骗操作系统将我的 posts.com
重定向到 localhost:80
127.0.0.1 posts.com
来自 SM
我在端口 80 上有一个服务器 运行ning,但我不知道它是什么,也不知道它来自哪里。当我运行
sudo lsof -i :80 | grep LISTEN
我明白了
httpd 80 root 5u IPv6 0x91f5a9de62859cfd 0t0 TCP *:http (LISTEN)
httpd 694 _www 5u IPv6 0x91f5a9de62859cfd 0t0 TCP *:http (LISTEN)
我尝试使用 PID 输入获取进程名称,但我在 return 中得到的只是 "httpd" 或 "FOREGROUND"。
当我终止 PID 时,进程只是用一个新的 PID 重新启动。我想我将不得不在发布时停止它。
如何在启动时停止此服务器 运行ning?
如果有帮助,我正在尝试释放端口 80 以在 MAMP 上使用 apache 服务器。
这只是一个猜测,但它可能是 apache 的内置版本,由 launchd(OS X 的守护进程管理器)启动(并重新启动)。默认情况下它是禁用的,但可能已经以某种方式启用了。您可以尝试禁用它:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
如果没有这样做(它会说类似 "Could not find specified service"),您可以通过查找主进程的 PID(那个运行 作为 root,而不是 _www):
sudo launchctl list | grep <masterPID>
这不一定会告诉您确切的情况,但可能会为您指明正确的方向。
正如 Gordon 所建议的,这是 Apache 网络服务器的内置版本。
您可以使用
停止它sudo apachectl stop
顺便说一句,这个网络服务器的配置可以在 /etc/apache2/httpd.conf 目录中找到。
我经常遇到这种情况。 正如@Gordon Davisson 所解释的那样,launchdeamon 进程很可能与您设置的服务发生冲突。 绝对停止 apachetl 服务器。
sudo apachetl -k stop
尝试找出所有的httpd进程,应该是最后一个
sudo lsof -i :80 // without grep
然后拿到第一个进程(大概率在1000s)应该也是最低的。
sudo kill <firstHttpdPID>
这应该会终止该 httpd 实例的所有进程 运行,然后您只需重新启动您的服务器即可。 不过必须先停止它,否则它会再次 运行。
Mac OSX 与 Apache 捆绑在一起,但它已被停用。您可能以某种方式激活了它。就我而言,我之前安装了 XAMPP 并在 /etc/apache2/httpd.conf
中配置了一些东西,这些东西将我的端口 localhost:80
引导到带有 [=16 的 html 页面=].
TLDR,解决方案是停用 Apache2 服务器。 转到您的终端,然后输入此
sudo apachetl -k stop
在我的例子中,returns 如下:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using Shafies-MacBook-Pro.local. Set the 'ServerName' directive globally to suppress this message
httpd (no pid file) not running
如果您在浏览器中输入 localhost
,端口 80 将不再活动,您将不会再看到 It Works!
。
关于上下文,我很久以前就删除了 XAMPP,但不知道我的 localhost:80
仍然有效。我无法将虚拟域 - posts.com
重定向到我的 kubernetes YAML 配置文件的本地主机端口。
这是我的 ingress-srv.yaml
文件:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: posts.com
http:
paths:
- path: /?(.*)
backend:
serviceName: client-srv
servicePort: 3000
并且我通过在位于 /etc/hosts
posts.com
重定向到 localhost:80
127.0.0.1 posts.com
来自 SM