执行bench start时端口识别失败的解决方案求助
解决bench start端口占用/更换端口失败的方案
1. 强制终止占用8000端口的进程
如果之前停止占用进程失败,可能是没精准定位或未强制终止,按系统执行对应命令:
- Linux/macOS:
- 查找占用8000端口的进程PID:
lsof -i :8000 - 强制杀死该进程:
kill -9 <查到的PID>
(若未安装lsof,可用netstat -tulpn | grep :8000获取PID)
- 查找占用8000端口的进程PID:
- Windows:
- 查找PID:
netstat -ano | findstr :8000 - 强制终止:
taskkill /F /PID <查到的PID>
- 查找PID:
2. 正确更换bench启动端口
如果之前换端口操作无效,试试这两种规范方法:
- 临时指定端口启动:直接在启动命令后加端口参数:
bench start --port 8001 - 永久修改端口配置:
- 编辑bench全局配置文件:
nano ~/frappe-bench/sites/common_site_config.json - 找到
"http_port": 8000字段,将值改为目标端口(如8001) - 保存退出后,执行
bench restart重启服务
- 编辑bench全局配置文件:
3. 清理bench残留进程
旧的bench进程未彻底停止,也会导致端口被占用:
- 先彻底停止所有bench服务:
bench stop - 确认无残留进程:
ps aux | grep frappe(Linux/macOS)或tasklist | findstr frappe(Windows),若有残留,手动杀死对应PID - 重新启动bench(可指定端口)
4. 排查权限与端口范围问题
- 避免使用1-1023之间的端口,这类端口需要root/管理员权限,优先选择1024以上的端口(如8001、8080)
- 若必须使用低端口,执行
sudo bench start --port 80(Linux/macOS)或右键以管理员身份运行命令提示符再执行启动命令(Windows)
内容的提问来源于stack exchange,提问作者musa kabonge
相关产品推荐
相关产品推荐

