Skip to main content

设置模型开机自启动

适用场景

基于vLLM部署的模型在系统开机/重启后自动运行的需求场景,支持用户自定义conda环境及模型启动参数。

操作步骤

步骤1:创建模型自启动脚本

  1. 登录服务器,切换至模型部署的业务用户(示例dev用户,若启动命令含sudo,需确保该用户有sudo权限)。
  2. 创建自启动脚本文件(建议存放至模型部署目录,示例路径:/home/dev/mt/vllm/model_scripts/start_model.sh):
    vim /mt/vllm/model_scripts/start_model.sh
  3. 将以下模板内容复制到脚本中,替换所有示例内容为实际配置
    #!/bin/bash
    # 模型开机自启脚本
    # 日志文件路径(可自定义,用于排查启动问题)
    LOG_FILE="/home/dev/mt/vllm/model_scripts/model_start.log"
    # 清空历史日志(可选,根据需求保留)
    > $LOG_FILE

    # 1. 设置MUSA库环境变量
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 设置MUSA库路径" >> $LOG_FILE
    export LD_LIBRARY_PATH=/usr/local/musa/lib:$LD_LIBRARY_PATH
    # 验证路径生效
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 当前LD_LIBRARY_PATH:$LD_LIBRARY_PATH" >> $LOG_FILE

    # 2. 加载并激活自定义conda环境
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 加载conda配置" >> $LOG_FILE
    # 替换为你的conda安装路径(执行which conda可查看,示例:安装路径为/home/dev/miniforge3/bin/conda → conda.sh路径为/etc/profile.d/conda.sh,source /你的conda安装路径/etc/profile.d/conda.sh)
    source /home/dev/miniforge3/etc/profile.d/conda.sh
    # 激活用户自定义conda环境(示例:v1.3.1,替换为实际环境名)
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 激活conda环境:v1.3.1" >> $LOG_FILE
    conda activate v1.3.1
    # 检查环境激活是否成功
    if [ $? -ne 0 ]; then
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] ERROR: conda环境激活失败" >> $LOG_FILE
    exit 1
    fi

    # 3. 执行模型启动命令(示例,替换为实际命令)
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 开始启动模型" >> $LOG_FILE
    # 执行模型启动命令(示例,替换为实际模型参数)
    ENABLE_MUSA_MMA=1 vllm serve /home/dev/mt/vllm/models/gptq-Qwen2.5-7B-Instruct -tp 1 \
    --gpu_memory_utilization 0.8 --quantization gptq --block_size 32 \
    --num-gpu-blocks-override 512 --max-model-len 16384 --max-num-seqs 1 \
    --swap_space 0 --enforce-eager >> $LOG_FILE 2>&1

    # 检查模型启动是否成功
    if [ $? -eq 0 ]; then
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] 模型启动成功" >> $LOG_FILE
    else
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] ERROR: 模型启动失败" >> $LOG_FILE
    exit 1
    fi
  4. 保存并退出脚本文件(vim编辑器:按Esc,输入:wq回车)。
  5. 为脚本添加可执行权限:
    chmod +x /home/dev/mt/vllm/model_scripts/start_model.sh

步骤2:配置crontab开机自启

  1. 打开crontab定时任务配置文件:
    crontab -e

    说明:首次执行可能提示选择编辑器,推荐选vim(输入对应序号即可)。

  2. 在配置文件末尾添加以下行(替换脚本实际路径):
    @reboot bash /home/dev/mt/vllm/model_scripts/start_model.sh
    • @reboot:表示系统开机/重启后触发执行;
    • 路径需替换为步骤1中创建的脚本绝对路径,不可用相对路径。
  3. 保存并退出配置文件(vim:Esc+:wq;nano:Ctrl+O保存+Ctrl+X退出)。
  4. 验证配置是否生效:
    crontab -l
    执行后若能看到新增的@reboot行,说明配置已成功添加。

注意事项

  1. 自定义项核对
    • conda路径:执行which conda获取安装路径(示例:/home/dev/miniforge3/bin/conda → 配置路径为/home/dev/miniforge3/etc/profile.d/conda.sh);
    • conda环境名:执行conda info --envs确认环境存在(如v1.3.1);
    • 模型启动命令:替换为实际的vllm serve参数,确保无拼写错误。
  2. 日志排查
    • 脚本执行日志默认写入/home/dev/mt/vllm/model_scripts/model_start.log,启动失败时优先查看该日志。
  3. 自动登录
    • 需设置用户为自动登录:
    1. 解锁桌面,在设置 -> 用户 -> 设置为“自动登录”。
    2. 若使用ssh访问,可以执行命令完成授权后重新登录或重启: sudo usermod -aG render,video $USER

验证模型自启效果

配置完成后重启服务器验证:

sudo reboot

服务器重启完成后,执行以下命令检查:

# 检查启动日志确认无错误,替换为你的实际log路径
cat /home/dev/mt/vllm/model_scripts/model_start.log

出现 Application startup complete,就是vLLM 服务启动成功。

关闭模型开机自启

若需停止模型开机自动运行,执行以下步骤:

  1. 打开crontab配置文件:
    crontab -e
  2. 找到添加的@reboot bash /opt/model_scripts/start_model.sh行:
    • 方式1(推荐):在行首添加#注释该行(后续可恢复),示例:
      # @reboot bash /opt/model_scripts/start_model.sh
    • 方式2:直接删除该行(彻底移除自启配置)。
  3. 保存并退出配置文件,配置立即生效(无需重启服务器)。
  4. 验证关闭效果:
    crontab -l
    若看不到未注释的@reboot行,说明自启已关闭。