安装
redis
后,我注意到services
未激活,并且我的error
状态为:
dnsmasq
nginx
php
(即 php8.x)[email protected]
redis
我已经尝试了在互联网上找到的所有内容,包括SO,但没有运气。
我尝试过:
launchctl unload
和launchctl load
- ~/Library/LaunchAgents/homebrew.mxcl.dnsmasq.plist
(我已经为每项服务尝试过这个)brew doctor
说:您的系统已准备好酿造。launchctl enable <service target>
但是,如果我运行
sudo brew services list
,除了 mysql
和 php
(PHP 8.x) 之外,一切正常
当我尝试使用
brew services start SERVICE NAME
单独启动每个服务时,出现以下错误。这是为了php
Bootstrap failed: 5: Input/output error
Error: Failure while executing; `/bin/launchctl bootstrap gui/501
/Users/mvpop/Library/LaunchAgents/homebrew.mxcl.php.plist` exited with 5.
我不知道可以尝试什么才能启动服务。
任何建议将不胜感激。
谢谢!
更新 - 我刚刚一一删除并重新安装了所有服务,在尝试启动它们时遇到了相同的错误:
Bootstrap failed: 5: Input/output error
Error: Failure while executing; `/bin/launchctl bootstrap gui/501
/Users/mvpop/Library/LaunchAgents/homebrew.mxcl.php.plist` exited with 5.
确保任何现有的启动代理
plist
文件干净且未损坏。从您的 plist
目录中手动删除与有问题的服务相关的 ~/Library/LaunchAgents/
文件。例如,删除 homebrew.mxcl.php.plist
、homebrew.mxcl.dnsmasq.plist
等文件。删除后,尝试使用brew services start SERVICE_NAME
重新启动服务,这将生成新的plist
文件。
权限也可能是一个重要因素。验证您的用户帐户是否对
~/Library/LaunchAgents/
目录及其内容具有适当的读写权限。不正确的权限可能会阻止 launchctl
正确加载服务。您可能需要使用 chown 和 chmod 调整所有权和权限,以确保您的用户帐户可以毫无问题地访问这些文件。
不同版本的服务之间存在冲突,例如同时安装了
PHP 8.x
和PHP 7.4
,可能会导致启动失败。请考虑停止所有版本的冲突服务,然后仅启动您想要使用的服务。除非必要,通常建议避免将 sudo 与 brew 服务一起使用,因为它可能导致权限不一致并影响服务的运行位置和方式。
运行
brew services cleanup
可以帮助删除任何可能干扰服务运行的陈旧或过时的服务文件。清理后,尝试再次启动您的服务以查看问题是否仍然存在。
最后,检查系统日志可以更深入地了解问题所在。使用控制台应用程序或在终端中执行
log show --predicate 'process == "launchd"'
查找与 launchctl 或您尝试启动的特定服务相关的错误消息。这些日志可以揭示仅从错误消息中无法立即看出的潜在问题。
通过彻底清理旧的启动代理、确保正确的权限、解决服务版本冲突以及检查系统日志以获取其他线索,您应该能够解决 Bootstrap failed: 5 错误并成功启动您的 Homebrew 服务。