推荐直接使用官方提供的安装脚本,它会自动配置 systemd 服务以实现开机自启;若需自定义环境,则手动编写 systemd 单元文件。
先说结论:Ubuntu 22.04 下最稳妥的方式是调用官方脚本,它会自动处理依赖和 systemd 服务注册,无需手动配置开机自启。
- 适合:需要长期运行、断电后自动恢复的服务器环境。
- 先准备:确保服务器能访问外网下载脚本,且拥有 sudo 权限。
- 验收:通过 systemctl 状态和接口请求确认服务存活。
命令速用版
curl -fsSL https://ollama.com/install.sh | sh为什么会这样
在 Linux 服务器上跑后台程序,直接用 "nohup" 或"&"挂起虽然简单,但机器重启后服务会断,且日志分散不好查。Ubuntu 22.04 默认使用 systemd 管理服务,它能监控进程状态,崩溃自动重启,并统一收集日志。官方安装脚本的本质就是把二进制文件放到标准路径,并注册一个 systemd 单元文件,这样系统开机时会自动拉起 Ollama 进程。
分步处理
1. 执行官方安装脚本
在终端执行以下命令,脚本会自动检测架构、下载二进制文件并创建服务:
curl -fsSL https://ollama.com/install.sh | sh执行过程中可能需要输入 sudo 密码,等待显示"Install complete"或类似完成提示。
2. 手动配置方案(备选)
如果无法使用官方脚本,可手动创建 systemd 服务文件。新建文件 /etc/systemd/system/ollama.service,内容如下:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
[Install]
WantedBy=multi-user.target注意:手动方案需先自行下载二进制文件并创建 ollama 用户,权限配置不当会导致启动失败。
3. 启用并启动服务
无论哪种方式,确保服务已启用:
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama怎么验证是否生效
1. 检查服务状态
运行以下命令,查看"Active"字段是否为"active (running)":
systemctl status ollama2. 验证接口响应
Ollama 默认监听 11434 端口,使用 curl 测试:
curl http://localhost:11434若返回"Ollama is running",说明服务正常。
3. 验证开机自启
检查 enabled 状态:
systemctl is-enabled ollama输出"enabled"即表示已设置开机自启。
常见坑
1. 端口被占用
如果 11434 端口被其他程序占用,服务会启动失败。可通过 sudo lsof -i :11434 检查占用情况。
2. GPU 权限问题
若需要使用 GPU 加速,确保当前用户或 ollama 服务用户有访问显卡设备的权限,否则模型加载会回退到 CPU。
3. 防火墙拦截
如果需要远程访问,需在防火墙放行 11434 端口。Ubuntu 默认使用 ufw,命令为 sudo ufw allow 11434。注意开放端口可能带来安全风险,建议仅在内网开放。
参考来源
- Ollama GitHub - README, https://github.com/ollama/ollama
- Ollama Website - Install, https://ollama.com/download