AI 探索
配置 Ollama 环境变量
macOS 系统 Ollama 后台运行方案
launchd 服务环境变量与 Shell 环境变量的独立性解析
通过 Ollama 安装 deepseek
git: 'lfs' is not a git command
本文档使用 MrDoc 发布
-
+
首页
macOS 系统 Ollama 后台运行方案
## **一、方案概述** 本方案通过 `launchd` 系统服务实现 Ollama 的 **后台持久化运行**,支持开机自启、崩溃恢复及环境变量集中管理。 **核心优势**: - **稳定性**:服务由系统守护进程管理,确保长期运行不中断。 - **灵活性**:通过环境变量控制模型路径、性能参数等配置。 - **易维护**:日志集中管理,便于故障排查。 --- ## **二、环境变量配置整合(非必须,影响终端 `ollama serve` 运行方式)** 创建或更新 `~/.bash_ollama` 文件,集中管理所有环境变量: ```bash # ==================================================== # Ollama 环境变量配置 # ==================================================== export OLLAMA_HOST="0.0.0.0:11434" export OLLAMA_ORIGINS="*" export OLLAMA_KEEP_ALIVE="24h" export OLLAMA_NUM_PARALLEL=2 export OLLAMA_MAX_LOADED_MODELS=2 export CUDA_VISIBLE_DEVICES="0" export OLLAMA_DEBUG="false" export OLLAMA_FLASH_ATTENTION="true" export OLLAMA_LLM_LIBRARY="auto" export OLLAMA_NOPRUNE="false" export OLLAMA_MAX_VRAM="8192" # 可选配置(按需取消注释) # export OLLAMA_MODELS="/Volumes/SSD/Ollama_Models" # export OLLAMA_TMPDIR="/tmp/ollama" # export OLLAMA_SCHED_SPREAD="true" ``` --- ## **三、创建 launchd 服务配置文件** 1. **使用 `vim` 编辑 plist 文件** ```bash vim ~/Library/LaunchAgents/com.ollama.plist ``` 2. **输入以下内容** ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.ollama</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/ollama</string> <string>serve</string> </array> <key>EnvironmentVariables</key> <dict> <!-- 参考 ~/.bash_ollama 中的变量,plist 环境变量不受用户环境变量影响 --> <key>OLLAMA_HOST</key> <string>0.0.0.0:11434</string> <key>OLLAMA_ORIGINS</key> <string>*</string> <key>OLLAMA_KEEP_ALIVE</key> <string>24h</string> <key>OLLAMA_NUM_PARALLEL</key> <string>2</string> <key>OLLAMA_MAX_LOADED_MODELS</key> <string>2</string> <key>CUDA_VISIBLE_DEVICES</key> <string>0</string> <key>OLLAMA_DEBUG</key> <string>false</string> <key>OLLAMA_FLASH_ATTENTION</key> <string>true</string> <key>OLLAMA_LLM_LIBRARY</key> <string>auto</string> <key>OLLAMA_NOPRUNE</key> <string>false</string> <key>OLLAMA_MAX_VRAM</key> <string>8192</string> <!-- 可选变量 --> <!-- <key>OLLAMA_MODELS</key> <string>/Volumes/SSD/Ollama_Models</string> --> </dict> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> <!-- 这里需要特别注意,日志目录需用户有权限读写的目录 --> <key>StandardOutPath</key> <string>~/log/ollama.log</string> <key>StandardErrorPath</key> <string>~/log/ollama-error.log</string> </dict> </plist> ``` 3. **保存并退出** - 按下 `Esc` → 输入 `:wq` → 按 `Enter`。 --- ## **四、服务管理与验证** 1. **加载并启动服务** ```bash launchctl load ~/Library/LaunchAgents/com.ollama.plist launchctl start com.ollama ``` 2. **验证服务状态** ```bash launchctl list | grep ollama # 应输出服务状态 curl http://127.0.0.1:11434/api/tags # 返回模型列表表示成功 ``` 3. **查看实时日志** ```bash tail -f /var/log/ollama.log ``` --- ## **五、服务管理命令** | **操作** | **命令** | |------------------------|---------------------------------------------| | **启动服务** | `launchctl start com.ollama` | | **停止服务** | `launchctl stop com.ollama` | | **重启服务** | `launchctl kickstart -k com.ollama` | | **卸载服务** | `launchctl unload ~/Library/LaunchAgents/com.ollama.plist` | | **查看日志** | `tail -f /var/log/ollama.log` | --- ## **六、高级配置** 1. **多 GPU 支持** 若启用多 GPU 调度: - 取消 `com.ollama.plist` 中 `OLLAMA_SCHED_SPREAD` 的注释,并设置: ```xml <key>OLLAMA_SCHED_SPREAD</key> <string>true</string> <key>CUDA_VISIBLE_DEVICES</key> <string>0,1</string> <!-- 指定多个 GPU --> ``` 2. **自定义模型路径** - 创建目录并设置权限: ```bash sudo mkdir -p /Volumes/SSD/Ollama_Models sudo chmod 777 /Volumes/SSD/Ollama_Models ``` - 取消 `com.ollama.plist` 中 `OLLAMA_MODELS` 的注释。 --- ## **七、故障排查** 1. **服务未启动** - 检查权限: ```bash chmod 644 ~/Library/LaunchAgents/com.ollama.plist ``` - 查看错误日志: ```bash cat /var/log/ollama-error.log ``` 2. **端口冲突** - 查找占用端口进程: ```bash lsof -i :11434 ``` - 终止冲突进程: ```bash kill -9 <PID> ``` 3. **模型加载失败** - 重新下载模型: ```bash ollama pull llama3 ``` - 检查磁盘空间: ```bash df -h /Volumes/SSD/Ollama_Models ``` --- ## **八、方案总结** 通过 `launchd` 系统服务,Ollama 可在 macOS 上实现: - **持久化后台运行**:服务崩溃后自动重启,支持开机自启。 - **配置集中管理**:环境变量统一维护,避免散落在多个文件中。 - **生产级稳定性**:日志集中记录,资源占用可控,适合长期部署。 用户可根据实际需求调整环境变量,灵活适配不同硬件和场景。
七宇轩远
2025年03月03日
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码