快速结论:该问题出现在 Windows 平台的 Ollama 0.12.4 及以上版本中,运行 ollama run 时不再像以前一样自动拉起服务端进程,而是直接报错。优先排查 Ollama 服务是否已通过桌面应用或 ollama serve 单独启动。
适用环境:已在 Windows 上确认;Ollama 版本涉及 0.12.4 与 0.12.10;日志中可见 NVIDIA GeForce RTX 4070 Ti SUPER(CUDA compute 8.9、driver 13.0、cuda_v12)。Python、CPU 型号未在 Issue 中提供。
最快修复方案:Issue 中明确验证的做法是:先运行 ollama serve 单独启动服务端,再在另一个终端执行 ollama run <model>,CLI 即可正常工作。暂无确认的一步修复方案能让 ollama run 在 0.12.4+ 的 Windows 上重新自动拉起服务端。
注意事项:该方法对 CLI 有效,但对 GUI(桌面应用)无效——报告者指出 GUI 会结束掉正在运行的 ollama serve,之后重试会因端口被占用而失败。Issue 被标记为 needs more info,官方尚未给出修复版本或配置开关,因此“自动拉起服务端”的行为变更是否为有意设计尚无结论。
问题场景
用户在 Windows 上安装 Ollama 0.12.4(后续版本 0.12.10 同样复现),并且没有预先启动 Ollama 服务端,直接在终端执行 ollama run <model>。在 0.12.3 及更早版本中,这一命令会自动启动服务端并加载模型;从 0.12.4 开始,命令不再自动启动服务端,而是拉起 ollama app.exe 及两个 ollama.exe 实例后报错。同类报错也会出现在启动菜单或桌面 GUI 启动时。
报错原文
Error: llama runner process has terminated: exit status 2
500 Internal Server Error: llama runner process has terminated: exit status 2
Error: listen tcp 127.0.0.1:11434: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted
原因分析
从 Issue 证据看,0.12.4 起 Windows 上的 ollama run 不再自行启动服务端,但用户侧行为变化与官方意图之间的关系未在 Issue 中确认,因此以下为可能原因:
- 可能原因一:0.12.4 修改了 Windows 启动逻辑,
ollama run不再负责拉起常驻服务,而是依赖系统托盘或桌面应用先行启动服务端;当服务端未就绪时,runner 子进程启动失败并返回exit status 2。 - 可能原因二:GUI 与 CLI 服务端争抢
127.0.0.1:11434端口。当ollama serve已在运行时再启动 GUI,或 GUI 结束后再去启动 serve,会出现bind: Only one usage of each socket address。 - 可能原因三:日志显示服务端进入了
entering low vram mode(16 GiB 显存低于 20 GiB 阈值),并连续启动多个 runner;这属于资源调度行为,但 Issue 中并未证明它直接导致exit status 2。
环境排查
- 确认 Ollama 版本:执行
ollama -v,确认是否为 0.12.4 或更高版本。 - 确认服务端是否在运行:执行
tasklist | findstr ollama,观察是否有ollama app.exe、ollama.exe进程以及各自的 PID。 - 确认端口占用:检查
127.0.0.1:11434是否已被其他 Ollama 实例占用。 - 查看日志目录
%LOCALAPPDATA%\Ollama,重点看server.log、app.log及其带编号的历史日志,排查 runner 启动失败的具体上下文。 - 若涉及 GPU,核对日志中的 GPU 型号与显存,例如本 Issue 中出现的
NVIDIA GeForce RTX 4070 Ti SUPER、CUDA compute 8.9、cuda_v12、driver 13.0。
解决步骤
- 先彻底停止现有 Ollama 进程:通过系统托盘图标退出,或用任务管理器结束
ollama app.exe、ollama.exe相关进程。 - 确认没有残留进程与端口占用:执行
tasklist | findstr ollama,必要时确认11434端口空闲。 - 在终端单独启动服务端:执行
ollama serve,保持该窗口不关闭,并确认日志中出现类似Listening on 127.0.0.1:11434 (version ...)的信息。 - 另开一个终端,再执行
ollama run <model>。Issue 中报告者确认这种“先 serve 再 run”的方式可以让 CLI 正常工作。 - 如果必须使用 GUI,避免在
ollama serve已运行时再启动桌面应用;反过来,GUI 运行期间也不要重复执行ollama serve,否则容易出现端口绑定冲突。 - 若首次安装 0.12.10 后没有看到托盘图标,Issue 中报告者通过重新安装后才恢复正常显示,可优先尝试卸载后重新安装同一版本,再观察托盘与进程状态。
验证方法
保持 ollama serve 窗口运行,重新打开终端执行 ollama run <model>,确认模型可以正常加载并进入交互对话,且不再出现 Error: llama runner process has terminated: exit status 2。同时检查 tasklist | findstr ollama,确认服务端进程持续存在,没有立即退出;再查看 %LOCALAPPDATA%\Ollama\server.log,确认没有重复的 runner 启动失败或端口绑定错误。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


