Mac系统puma-dev占用5000端口 启动puma服务报Address already in use错误
解决方案
1. 释放系统控制中心占用的5000端口
你查询到的ControlCe进程是Mac系统控制中心服务,占用5000端口是因为MacOS 12 Monterey及以上版本默认开启了「隔空播放接收器」功能,手动杀死进程会被系统自动重启,直接关闭对应功能即可释放端口:
- 打开「系统设置」→ 进入「通用」分类 → 选择「隔空播放与接力」
- 关闭「隔空播放接收器」的开关,5000端口会立即被释放
如果不想关闭隔空播放功能,也可以直接修改手动启动puma的监听端口,比如将启动命令改为bundle exec puma -C config/puma.rb --port 3000,使用其他未被占用的端口启动服务即可。
2. 解决puma-dev进程自动重启问题
puma-dev是通过launchd注册为系统常驻服务的,直接执行kill命令杀死进程后,会被launchd守护进程自动拉起,需要使用puma-dev自带的命令管理服务:
如果不需要使用puma-dev,直接停止服务并卸载自启配置即可:
# 停止当前运行的puma-dev进程 puma-dev -stop # 移除launchd自启规则,后续不会再自动重启puma-dev puma-dev -uninstall
如果需要保留puma-dev使用,可以修改它的默认监听端口避免冲突:
# 先卸载原有自启配置 puma-dev -uninstall # 重新安装自启配置,自定义http端口为9280、https端口为9283(可替换为其他未被占用的端口) puma-dev -install -http-port 9280 -https-port 9283
内容的提问来源于stack exchange,提问作者ogirginc
相关产品推荐
相关产品推荐

