执行sudo brew services start nginx启动nginx报错37如何解决?
报错成因
- 该错误是macOS launchctl返回的状态码37触发,核心原因是Nginx对应的launchd系统服务已经完成注册,处于运行/残留挂起状态,重复执行bootstrap注册操作会被系统拒绝,因此抛出「操作已在进行中」的提示
- 常见触发场景:
- 此前已经用sudo权限启动过Nginx服务,未正常停止就重复执行启动命令
- Nginx进程异常崩溃后,launchd的服务注册记录未被正常清理,残留信息导致新的注册请求被拦截
解决步骤
- 先确认Nginx服务当前状态
执行命令查看brew管理的服务状态:
sudo brew services list | grep nginx
如果输出中Nginx状态为started,说明服务已经正常运行,无需重复启动,直接访问验证功能即可。
- 清理已有服务注册信息
如果状态异常,先停止现有服务:
sudo brew services stop nginx
如果停止操作后仍然报错,直接手动移除launchd中的旧注册项:
sudo launchctl bootout system /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
该命令执行成功无返回输出属于正常情况
- 清理残留的Nginx进程
执行命令杀死所有残留的Nginx进程:
sudo pkill -9 nginx
执行以下命令确认进程已全部清理,无相关输出即为清理完成:
ps aux | grep nginx
- 重新启动Nginx服务
执行启动命令:
sudo brew services start nginx
再次执行sudo brew services list查看状态,显示started即为启动成功。
内容的提问来源于stack exchange,提问作者aicherish
相关产品推荐
相关产品推荐

