Linux在 user03 用户下完整部署 Ollama(手动安装 + 开机自启 + 远程访问)
·
✅ 在 user03 用户下完整部署 Ollama(手动安装 + 开机自启 + 远程访问)
适用场景:
- 已下载
ollama-linux-amd64.tgz- 以普通用户
user03身份运行- 模型路径:
/TGAI/ollama/models-2505/models- 绑定
0.0.0.0:11434,支持远程访问- 系统启动即运行(无需登录)
- 终端可直接使用
ollama命令
🧾 一、环境概览
| 项目 | 值 |
|---|---|
| 系统 | Ubuntu 22.04 / 其他 systemd Linux |
| 用户 | user03(非 root) |
| Ollama 二进制 | /TGAI/ollama/ollama_app/bin/ollama |
| 模型目录 | /TGAI/ollama/models-2505/models |
| 监听地址 | 0.0.0.0:11434 |
| 启动方式 | 用户级 systemd + loginctl enable-linger |
🔧 二、准备工作(需 root 权限)
1. 解压 Ollama(如未完成)
sudo mkdir -p /TGAI/ollama/ollama_app
sudo tar -zxf ollama-linux-amd64.tgz -C /TGAI/ollama/ollama_app
💡 确保
.tgz文件在当前目录,或指定完整路径。
2. 设置目录所有权与权限
# 创建模型目录并授权给 user03
sudo mkdir -p /TGAI/ollama/models-2505/models
sudo chown -R user03:user03 /TGAI/ollama/ (或者此目录支持user03 可写可读可执行)
sudo chmod +x /TGAI/ollama/ollama_app/bin/ollama
⚠️ 不要用
chmod 777!仅授权必要用户即可。
👤 三、切换至 user03 用户
su - user03
后续所有操作均在此用户下进行。
⚙️ 四、配置用户级 systemd 服务
1. 创建服务目录
mkdir -p ~/.config/systemd/user
2. 创建服务文件
cat > ~/.config/systemd/user/ollama.service <<EOF
[Unit]
Description=Ollama Service (user03)
After=network.target
[Service]
# 启动命令:执行 Ollama 的 serve 子命令以启动 API 服务
ExecStart=/TGAI/ollama/ollama_app/bin/ollama serve
# 始终自动重启服务(即使正常退出也会重启,适用于需要长期运行的服务)
Restart=always
# 重启前等待 3 秒,避免频繁崩溃导致系统资源浪费
RestartSec=3
# 设置环境变量:指定模型存储路径
Environment="OLLAMA_MODELS=/TGAI/ollama/models-2505/models"
# 设置 Ollama 监听地址和端口(0.0.0.0 表示监听所有网络接口)
Environment="OLLAMA_HOST=0.0.0.0:11434"
# 设置模型在内存中保持加载状态的时间(24 小时),减少重复加载开销
Environment="OLLAMA_KEEP_ALIVE=24h"
# 设置并行处理请求数量(提高并发能力)
Environment="OLLAMA_NUM_PARALLEL=8"
# 启用 Flash Attention 优化(提升推理速度,需硬件支持)
Environment="OLLAMA_FLASH_ATTENTION=1"
[Install]
WantedBy=default.target
EOF
✅ 所有运行时参数集中管理,便于维护。
🔄 五、启用用户空间开机自启(核心步骤)
1. 重载并启用用户服务
systemctl --user daemon-reload
systemctl --user enable --now ollama.service
--now表示立即启动服务。
2. 启用 linger(需 root)
此步骤允许服务在系统启动时自动运行,即使用户未登录。
# 退出 user03
exit
# root 执行
sudo loginctl enable-linger user03
# 切回 user03(可选,用于后续验证)
su - user03
✅ 这是实现“无登录开机自启”的关键!
▶️ 六、验证服务状态
# 查看服务状态
systemctl --user status ollama
# 检查端口监听
ss -tulnp | grep ':11434'
预期输出包含:
LISTEN 0 4096 0.0.0.0:11434 0.0.0.0:* users:(("ollama",pid=...,fd=...))
远程测试(从其他机器)
curl http://<服务器IP>:11434
# 应返回:Ollama is running
若无法访问,请检查防火墙(见第八节)。
🧪 七、配置终端命令(PATH)
让 user03 可直接使用 ollama 命令:
echo 'export PATH="/TGAI/ollama/ollama_app/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
✅ 验证:
which ollama
# → /TGAI/ollama/ollama_app/bin/ollama
ollama list
# 应正常返回(服务已运行)
💡 CLI 默认连接
127.0.0.1:11434,无需额外设置OLLAMA_HOST。
🔒 八、放行防火墙(如启用)
Ubuntu (ufw)
sudo ufw allow 11434/tcp
CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=11434/tcp
sudo firewall-cmd --reload
🛠 九、常用管理命令
| 操作 | 命令 |
|---|---|
| 查看状态 | systemctl --user status ollama |
| 重启服务 | systemctl --user restart ollama |
| 实时日志 | journalctl --user -u ollama -f |
| 禁用自启 | systemctl --user disable ollama + sudo loginctl disable-linger user03 |
✅ 十、GPU 支持验证
方法 1:运行模型 + 观察 nvidia-smi
# 启动模型(首次会下载)
ollama run llama3:8b
# 新终端监控 GPU
watch -n 1 nvidia-smi
✅ 成功标志:
- GPU-Util > 0%
- 显存显著占用
方法 2:查看服务日志
journalctl --user -u ollama -f
成功日志应包含:
loaded CUDA backend
using GPU for inference
⚠️ 若无 GPU 日志,请升级 Ollama 至 ≥ v0.1.34 并确认 NVIDIA 驱动/CUDA 安装正确。
⚙️ 十一、GPU 优化参数
如果不懂最好默认
在 ~/.config/systemd/user/ollama.service 的 [Service] 段追加:
Environment="OLLAMA_GPU_LAYERS=999"
Environment="CUDA_VISIBLE_DEVICES=0"
Environment="OLLAMA_FLASH_ATTENTION=1"
OLLAMA_GPU_LAYERS=999:尽可能将层卸载到 GPU- 多卡时可用
CUDA_VISIBLE_DEVICES=1指定设备
修改后重载服务:
systemctl --user daemon-reload
systemctl --user restart ollama
🎯 总结:你已实现
- ✅ 安全隔离:Ollama 以普通用户
user03运行 - ✅ 持久化模型:存储于自定义路径
/TGAI/... - ✅ 远程可用:绑定
0.0.0.0:11434 - ✅ 真正开机自启:通过
linger实现无登录启动 - ✅ 命令行友好:
ollama run/list/pull开箱即用 - ✅ GPU 自动加速:支持 CUDA(驱动正常前提下)
🚀 适用于开发、测试甚至轻量生产环境。
ℹ️ 提示:如需多用户共用同一模型目录,请确保目录权限为
755或使用 ACL,但建议每个用户独立模型空间以避免冲突。
更多推荐
所有评论(0)