Linux服务器部署大模型_后台常驻运行脚本分享

2026-05-06阅读 0热度 0
大模型

Linux服务器部署大模型:后台常驻运行脚本全攻略

linux服务器部署大模型_后台常驻运行脚本分享

好不容易在Linux服务器上把大模型(比如Qwen2.5-7B、MiniCPM-o-4.5这些)部署起来了,结果一关SSH终端,服务也跟着断了——这事儿是不是挺让人头疼的?这通常意味着你的模型还在“前台交互式运行”模式。别担心,下面这几种后台常驻运行的脚本方案,从轻量级到生产级,总有一款适合你。

一、nohup + 重定向启动脚本

想快速验证或者临时让模型跑上一阵子?这个方案最省事。它不需要安装任何额外组件,核心思路就是忽略终端挂断信号,同时把日志输出到文件,实现最基础的后台化。

具体操作分几步走:

首先,创建启动脚本文件:touch run_model_nohup.sh

接着,赋予它执行权限:chmod +x run_model_nohup.sh

然后,把核心命令写进去。这里以Qwen2.5-7B-Instruct为例,假设服务端口是8000:

#!/bin/bash
cd /root/qwen2.5-7b-instruct
source qwen_env/bin/activate
nohup python qwen_service.py --port 8000 > /var/log/qwen_service.log 2>&1 &

保存后,执行脚本:./run_model_nohup.sh

最后,别忘了验证一下进程是否在后台稳稳地跑着:ps aux | grep qwen_service.py

二、systemd服务单元脚本

如果目标是生产环境的长期、稳定部署,那么systemd无疑是更专业的选择。作为Linux的标准服务管理器,它带来的好处是实打实的:开机自启、崩溃后自动重启、集中的日志管理,还能对资源使用进行限制。

部署起来也不复杂:

第一步,创建服务定义文件:sudo nano /etc/systemd/system/qwen-model.service

第二步,填入标准化的配置。注意,下面的路径、用户和环境变量需要根据你的实际情况调整:

[Unit]
Description=Qwen2.5-7B-Instruct API Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/qwen2.5-7b-instruct
Environment="PATH=/root/qwen_env/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/root/qwen_env/bin/python qwen_service.py --port 8000
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
MemoryLimit=24G

[Install]
WantedBy=multi-user.target

第三步,重载配置并立即启用服务:sudo systemctl daemon-reload && sudo systemctl enable --now qwen-model.service

之后,想查看实时运行日志就简单了:sudo journalctl -u qwen-model.service -f

三、docker容器化后台脚本(适用已容器化模型)

对于那些已经封装成Docker镜像的大模型(例如Qwen-Image-2512、Hunyuan-MT-7B-vllm),利用Docker本身的能力来实现后台托管是最优雅的。这种方式几乎零依赖,还能享受镜像带来的环境一致性。

操作流程很清晰:

先编写一个可复用的启动脚本:touch start_model_docker.sh

然后在脚本里填入类似下面的内容。这个示例将容器端口映射到宿主机的8080,启用了GPU,并设置了自动重启策略:

#!/bin/bash
docker run -d \
--gpus all \
--restart unless-stopped \
--name qwen-image-prod \
--volume /data/qwen-output:/app/output \
registry.cn-hangzhou.aliyuncs.com/csdn_ai/qwen-image-2512:latest

最后,执行脚本并确认容器状态:chmod +x start_model_docker.sh && ./start_model_docker.sh && docker ps | grep qwen-image-prod

四、setsid脱离会话脚本(高隔离性场景)

最后这个方案比较特别,适用于对安全性要求高,或者运行环境复杂(比如嵌套终端)的场景。`setsid`命令能让进程彻底脱离当前终端会话,直接成为init进程(PID 1)的子进程,这样无论终端发生什么,都不会影响到模型服务。

实现步骤如下:

新建一个独立的守护脚本:touch run_with_setsid.sh

写入命令。这里换一个模型示例,比如Leather Dress Collection:

#!/bin/bash
cd /root/Leather-Dress-Collection
source leather-env/bin/activate
setsid python app.py --server-port 7861 > /var/log/leather-app.log 2>&1

执行这个脚本,它会立即进入后台且不阻塞当前终端:./run_with_setsid.sh &

如何确认成功了呢?检查一下目标进程的父进程ID是不是1:ps -o pid,ppid,comm -C python | grep app.py

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策