Mac High Sierra停止Apache服务器失败求助:命令提示找不到指定服务
解决MacBook上停止Apache时提示“Could not find specified service”的问题
你遇到的这个错误,本质是系统找不到你指定的Apache服务配置文件,大概率是因为Apache的安装方式不是系统默认预装的,或者服务本身就没在运行。下面分几种情况来排查和解决:
1. 先确认Apache是否真的在运行
首先可以先检查系统里有没有Apache进程在跑,执行这个命令:
ps aux | grep httpd
如果输出里只有grep httpd这一行,说明Apache根本没在运行,那你执行停止命令自然会报错——没东西可停嘛。
2. 检查你的Apache是怎么安装的
从MacOS Monterey(12.x)开始,苹果已经不再预装Apache了。如果你是自己安装的,最常用的方式是用Homebrew:
- 如果是Homebrew安装的Apache,它的服务配置文件路径不是
/System/Library/LaunchDaemons/org.apache.httpd.plist,而是在/Library/LaunchDaemons/homebrew.mxcl.httpd.plist(全局服务)或者~/Library/LaunchAgents/homebrew.mxcl.httpd.plist(当前用户服务)。
这种情况下,你应该用Homebrew自带的命令来管理服务:
# 停止Apache brew services stop httpd # 确认状态 brew services list
3. 如果你确实是用系统预装的Apache(旧版MacOS)
如果你的MacOS版本比较老(比如Big Sur及以前),预装了Apache,但还是报错,那可能是服务已经被卸载或者配置文件损坏了。可以尝试先重新加载再停止:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist sudo apachectl stop
不过如果这时候还是提示找不到文件,那可能是系统里的这个plist文件已经被删除了,你可能需要重新安装系统默认的Apache(或者直接改用Homebrew版本更省心)。
4. 验证Apache的安装路径
可以用which httpd命令看看你的Apache二进制文件在哪里:
which httpd
- 如果输出是
/usr/sbin/httpd,那是系统预装的版本; - 如果输出是
/usr/local/bin/httpd或者/opt/homebrew/bin/httpd,那是Homebrew安装的版本,对应要用Homebrew的服务命令管理。
总结一下,现在新MacOS几乎都是用Homebrew装Apache,所以优先试试brew services stop httpd这个命令,应该就能解决你的问题啦。
内容的提问来源于stack exchange,提问作者Vahagn Sargsyan
相关产品推荐
相关产品推荐

