Mac OS X Yosemite 10.10下无法停止Apache服务求助
解决Homebrew安装的Apache无法停止、自动重启的问题
这种情况我之前也碰到过,核心原因是macOS系统自带的Apache被launchd托管着自动重启,和你用Homebrew装的Apache进程冲突了——你手动kill或者用Homebrew命令停的可能只是其中一部分,系统自带的那个会被launchd自动拉起来。
下面是一步步的修复步骤:
1. 确认系统自带Apache的自动启动状态
先检查系统的launchd里有没有托管Apache服务:
launchctl list | grep org.apache.httpd
如果输出里能看到这个服务条目,说明它确实在后台自动运行。
2. 彻底禁用系统自带的Apache自动启动
首先停止当前运行的系统Apache:
sudo apachectl stop
然后禁用launchd的自动加载(-w参数是写入配置,防止系统重启后又自动启用):
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
3. 切换到Homebrew的Apache服务管理
先确保Homebrew的Apache服务状态是干净的:
brew services stop apache2
然后重新用Homebrew的服务命令启动:
brew services start apache2
现在你可以用brew services list查看状态,确认apache2是started状态,而且是Homebrew管理的实例。
4. 验证修复效果
执行停止命令:
brew services stop apache2
然后查看进程:
ps ax | grep httpd
正常情况下应该只有grep httpd的进程,没有其他/usr/sbin/httpd或者Homebrew路径的httpd进程。等个几分钟再查一遍,确认不会自动重启。
补充说明
macOS默认自带的Apache路径是/usr/sbin/httpd,而Homebrew安装的Apache路径一般是/usr/local/bin/httpd(Apple芯片设备是/opt/homebrew/bin/httpd),你也可以通过which httpd确认当前用的是哪个版本,确保后续操作都是针对Homebrew的实例。
内容的提问来源于stack exchange,提问作者sakhunzai
相关产品推荐
相关产品推荐

