繁体   English   中英

如何杀死运行在本地主机端口8080上的Apache / PHP服务器?

[英]How to kill Apache / PHP server running on local host port 8080?

我目前正在运行macOS High Sierra版本10.13.6。

这是在浏览器中加载localhost:8080时得到的结果: Apache / PHP服务器屏幕截图

我不知道该服务器是如何在此端口上启动的,因为我从未使用过这些技术。 我时不时地搞网络开发,但是我不知道服务器启动时我在做什么。 我已经研究了如何终止进程,到目前为止,我最接近终止服务器的任务是终止chrome浏览器。 我试图找到在端口8080上运行的进程的一些事情:

ps aux | grep 8080
lsof -t -i @localhost:8080
netstat -l -p | grep 8080
lsof -nP -i | grep 8080

我尝试了更多类似的方法,但我无法全部回忆。 使用lsof命令时,通常必须将sudo放在它们前面,以便显示任何内容。 有时我什么也回不来,有时我会得到类似的信息: lsof终端输出ps aux的Postgres进程所在的输出

当我获得与PID相关联的进程时,我将尝试使用kill -9 <PID>杀死它们。 通常,我必须使用sudo强制执行此操作,因为它给了我一个权限被拒绝的错误(可能不是最佳实践)。 当我这样做时,除杀死最初的进程之后进行搜索时,似乎没有其他进程出现。 我还尝试结束与ps aux相关的Postgres进程,但这也没有用。 好像我发现的任何过程都不正确。 有没有人有任何建议可以帮助我找到并杀死托管服务器的进程?

从命令行可以看到:

sudo /usr/sbin/apachectl stop

为防止它在下次重新启动时启动:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

请注意,我不知道在您的系统上还有什么使用apache,所以这可能会破坏事情。

您可以尝试:

ps -e | grep httpd

这将向您显示apache httpd PID。 另一种方法是使用brew安装pstree

brew install pstree

pstree将正在运行的进程显示为树。 然后,您可以使用以下命令找到PPID

pstree | grep httpd

然后,您可以使用kill终止进程。 我在macOS High Sierra上测试了两种方法。

lsof -nP -i | grep "TCP.*:8080.*LISTEN"

使用lsof查找正在端口8080上等待连接(“ LISTEN”)的进程。使用该输出中的PID列终止该进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM