Colab中执行ollama serve &后进程卡住的原因咨询
问题:Colab中执行
ollama serve &后进程卡住,无法后台运行? 我在Colab中执行了以下Shell命令:
!ollama serve & !ollama run llama3
得到如下输出:
2024/05/08 03:51:17 routes.go:989: INFO server config env="map[OLLAMA_DEBUG:false OLLAMA_LLM_LIBRARY: OLLAMA_MAX_LOADED_MODELS:1 OLLAMA_MAX_QUEUE:512 OLLAMA_MAX_VRAM:0 OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:1 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:*] OLLAMA_RUNNERS_DIR: OLLAMA_TMPDIR:]" time=2024-05-08T03:51:17.536Z level=INFO source=images.go:897 msg="total blobs: 0" time=2024-05-08T03:51:17.536Z level=INFO source=images.go:904 msg="total unused blobs removed: 0" time=2024-05-08T03:51:17.538Z level=INFO source=routes.go:1034 msg="Listening on 127.0.0.1:11434 (version 0.1.34)" time=2024-05-08T03:51:17.627Z level=INFO source=payload.go:30 msg="extracting embedded files" dir=/tmp/ollama2853183168/runners time=2024-05-08T03:51:28.627Z level=INFO source=payload.go:44 msg="Dynamic LLM libraries [rocm_v60002 cpu cpu_avx cpu_avx2 cuda_v11]" time=2024-05-08T03:51:28.629Z level=INFO source=gpu.go:122 msg="Detecting GPUs" time=2024-05-08T03:51:28.662Z level=INFO source=cpu_common.go:11 msg="CPU has AVX2"
进程在执行!ollama serve &时卡住了,原本以为&会让服务器在后台运行,想咨询这是什么原因?
解决说明
核心原因
- Colab命令执行特性限制:Colab中所有
!开头的命令共享同一个shell会话,后台进程(&)的标准输出、错误输出仍会绑定到当前单元格的输出流,导致单元格会持续等待所有后台进程的输出结束,表现为“卡住”。 - 服务初始化未完成:
ollama serve启动后需要完成文件提取、硬件检测等初始化步骤,直接紧接着执行ollama run llama3会因服务未就绪导致阻塞。
修复方案
- 重定向后台进程输出:将
ollama serve的输出重定向到空设备,避免占用单元格输出流:!ollama serve > /dev/null 2>&1 & - 添加初始化延迟:给服务预留足够的初始化时间,再执行运行命令:
!sleep 10 && ollama run llama3 - 合并成单条命令:一次性执行后台启动+延迟运行的组合命令:
!ollama serve > /dev/null 2>&1 & sleep 10 && ollama run llama3
额外注意
Colab的会话在断开连接后,所有后台进程会被自动终止,需保持会话活跃才能持续运行Ollama服务。
内容的提问来源于stack exchange,提问作者chikadance
相关产品推荐
相关产品推荐

