`ollama run` in Windows 0.12.4+ doesn’t start the server.

该问题出现在 Windows 平台的 Ollama 0.12.4 及以上版本中,运行 ollama run 时不再像以前一样自动拉起服务端进程,而是直接报错。优先排查 Ollama 服务是否已通过桌面应用或 ollama serve 单独启动。

快速结论:该问题出现在 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。

解决步骤

  1. 先彻底停止现有 Ollama 进程:通过系统托盘图标退出,或用任务管理器结束 ollama app.exe、ollama.exe 相关进程。
  2. 确认没有残留进程与端口占用:执行 tasklist | findstr ollama,必要时确认 11434 端口空闲。
  3. 在终端单独启动服务端:执行 ollama serve,保持该窗口不关闭,并确认日志中出现类似 Listening on 127.0.0.1:11434 (version ...) 的信息。
  4. 另开一个终端,再执行 ollama run <model>。Issue 中报告者确认这种“先 serve 再 run”的方式可以让 CLI 正常工作。
  5. 如果必须使用 GUI,避免在 ollama serve 已运行时再启动桌面应用;反过来,GUI 运行期间也不要重复执行 ollama serve,否则容易出现端口绑定冲突。
  6. 若首次安装 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 启动失败或端口绑定错误。

参考来源

ollama/ollama #13037

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 28814

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注