必须执行 brew services start 才能启动并设为开机自启;需先确认服务已安装、检查状态、进程、日志及连通性,避免端口冲突或配置错误。

在 macOS 上用 Homebrew 安装了 MySQL、Redis 或 Nginx 后,服务默认不会自动运行,必须手动启动并确保它能在后台持续工作、开机自启,否则每次重启电脑都要重敲命令,开发环境就断链了。
确认服务已安装且支持 brew services
Homebrew 的服务管理只对特定软件包生效,不是所有通过 brew install 安装的工具都支持后台常驻。常见支持的服务有:mysql、redis、nginx、postgresql、memcached、ollama 等。
运行 brew list | grep redis(把 redis 换成你要查的服务名)查看是否已安装。若无输出,说明尚未安装,需先执行 brew install redis。
【未安装就执行 brew services start 会报错且不提示原因,只会显示“Service not found”】
Homebrew Services 功能随主程序内置,无需额外安装 homebrew-services。
启动服务并设为开机自启
执行 brew services start redis 即可完成两件事:将服务注册为当前用户的 launchd 任务,并设置登录时自动启动。
该命令会在 ~/Library/LaunchAgents/ 下生成一个 plist 文件(如 homebrew.mxcl.redis.plist),并立即加载运行。服务以当前用户身份运行,适合监听非特权端口(如 Redis 默认的 6379)。
若服务需绑定 80 或 443 端口(如 nginx),必须用 root 权限启动:sudo brew services start nginx。此时 plist 文件会写入 /Library/LaunchDaemons/,且服务以 root 身份运行。
验证服务是否真正就绪
brew services start 返回 “Started” 只代表 launchd 接收了指令,不代表服务进程已初始化成功。
第一步:检查状态列表 → 运行 brew services list | grep redis,确认状态列为 started,用户列显示你的用户名(或 root)。
第二步:查进程是否存在 → 执行 ps aux | grep redis-server,看到类似 redis-server *:6379 的主进程,且不是 grep 自身。
第三步:看日志是否有报错 → Redis 日志默认位于 /opt/homebrew/var/log/redis/error.log(Apple Silicon)或 /usr/local/var/log/redis/error.log(Intel),打开文件末尾,确认没有 FATAL 或 Failed to bind 类错误。
第四步:实际连通测试 → 运行 redis-cli ping,返回 PONG 才算真正可用。
停止与重启服务
方法一:优雅停止 → brew services stop redis。这会向 redis-server 发送 SIGTERM,等待其主动关闭连接、刷盘后退出,避免数据丢失。
方法二:强制终止(不推荐)→ kill -9 $(pgrep redis-server)。这样做会导致 Redis 无法执行持久化,若配置了 RDB/AOF,可能丢失最后几秒数据。
方法三:重启(修改配置后必做)→ brew services restart redis,等价于先 stop 再 start,全程由 launchd 管理生命周期。
注意:用 redis-cli shutdown 或 kill -9 停止后,如果服务已被 brew services start 注册过,launchd 会检测到进程退出并自动拉起新实例——这不是 bug,是设计行为。
其他常用服务操作
查看服务详细信息(含路径、日志位置、是否开机自启)→ brew services info redis。
前台运行(用于调试,终端阻塞)→ brew services run redis,日志直接输出到当前终端,Ctrl+C 中断即停。
禁用开机自启但保留已启动状态 → brew services unload redis;恢复自启 → brew services load redis。











