当前位置: 首页 > news >正文

Linux上将conda环境VLLM服务注册为开机自启

这里写目录标题

  • 一、Systemd服务方式
    • 1、编写启动脚本
    • 2、保存脚本并赋予权限
    • 3、创建 systemd 服务单元文件
    • 3、 启用并测试服务
    • 4、停止systemd服务
  • 二、Crontab方式
    • 1、编辑`crontab`文件
    • 2、添加开机启动任务
  • 参考链接

在这里插入图片描述

项目需要vllm进行模型支撑,所以需要做成开机自启保证现场部署,做了些调研,梳理了几种部署方式,例如docker部署、源码部署,脚本的不同自启方式,现在写下几种

一、Systemd服务方式

1、编写启动脚本

编写启动脚本,实现激活 conda 环境后启动 vllm服务。

#!/bin/shell# 检查是否已经安装了 conda
if ! command -v conda &> /dev/null
thenecho "conda not found. Please install Anaconda or Miniconda."exit 1
fi# 激活特定的 Conda 环境
source "$(conda info --base)/bin/activate" vllm# 检查激活的环境
current_env=$(conda info --envs | grep '*')
echo "Current active environment: $current_env"# 运行 app.py 并将输出重定向到日志文件
vllm serve Qwen/Qwen2.5-32B-Instruct  --dtype auto  --gpu-memory-utilization 0.95  --served-model-name Qwen2.5-32B-Instruct   --tensor-parallel-size 2 --host 0.0.0.0  --port 8000 > /home/ai-daosmos/vllm.log 2>&1  &# 将后台进程 disown 以防止 shell 退出时影响到它
disown# 输出成功信息
echo "Vllm has been started successfully."# 等待一段时间以确保应用启动完成
sleep 5# 检查应用是否成功启动
FLASK_PID=$(pgrep -f "flask run --host 0.0.0.0 --port=8000")
if [[ -n "$FLASK_PID" ]]; thenecho "Vllm is running with PID: $FLASK_PID"
elseecho "Failed to start Vllm."exit 1
fi

2、保存脚本并赋予权限

chmod +x /home/ai-daosmos/scripts/start_vllm.sh

3、创建 systemd 服务单元文件

创建服务配置文件/etc/systemd/system/vllm.service,内容如下:

[Unit]
Description=Application (Vllm)
After=network.target[Service]
Type=simple
User=<your_user>
WorkingDirectory=/home/ai-daosmos/
ExecStart=/bin/shell /home/ai-daosmos/scripts/start_vllm.sh
Restart=always
Environment="PATH=/root/anaconda3/envs/vllm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"[Install]
WantedBy=multi-user.target

参数说明 :

  • User: 替换为实际运行脚本的用户。
  • WorkingDirectory: Flask 应用的工作目录。
  • ExecStart: 脚本的完整路径。
  • Environment: 设置 Conda 环境的 PATH,确保 命令可用。

3、 启用并测试服务

重新加载 systemd 配置 :

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

启用开机自启 :

sudo systemctl enable vllm

手动启动服务 :

sudo systemctl start vllm

查看服务状态 (检测是否部署成功):

sudo systemctl status vllm
journalctl -u dify.service -f

后续每次开机时,系统将自动进入您的 conda 环境并启动 vllm 服务。

4、停止systemd服务

后续如果想停止systemd相关服务。

停止服务:使用以下命令停止一个正在运行的服务:

sudo systemctl stop <service_name>

禁用服务‌:为了防止该服务在下次启动时自动运行,可以使用以下命令禁用服务:

sudo systemctl disable <service_name>

查看服务状态‌:如果你想要查看特定服务的状态,可以使用以下命令:

systemctl status <service_name>.service

二、Crontab方式

1、编辑crontab文件

打开当前用户的crontab文件:

crontab -e

2、添加开机启动任务

@reboot /path/to/your/vllm_server >> /home/ai-daosmos/vllm.log 2>&1 

这将在系统启动时执行VLLM服务器,并将输出重定向到/var/log/vllm.log文件中。

推荐使用systemd服务来管理VLLM的开机自启,因为它提供了更好的控制和灵活性。确保你的VLLM安装路径和用户权限设置正确,以避免权限或路径问题导致服务无法启动。

参考链接

https://blog.csdn.net/sunyuhua_keyboard/article/details/143528529
https://blog.csdn.net/su_xiao_wei/article/details/145779428

http://www.xdnf.cn/news/321175.html

相关文章:

  • Java 常用的 ORM框架(对象关系映射)
  • 企业级AI革命!私有化部署开源大模型:数据安全+自主可控,打造专属智能引擎
  • Ubuntu20.04安装使用ROS-PlotJuggler
  • 【MCP】客户端配置(ollama安装、qwen2.5:0.5b模型安装、cherry-studio安装配置)
  • C#与Halcon联合编程
  • 迁移学习:如何加速模型训练和提高性能
  • 锁相环HMC830的调试
  • 缓存替换算法与存储器管理的分页、分段、段页式管理联系
  • http Status 400 - Bbad request 网站网页经常报 HTTP 400 错误,清缓存后就好了的原因
  • 办公学习 效率提升 超级PDF处理软件 转换批量 本地处理
  • android 折叠屏开发适配全解析:多窗口、铰链处理与响应式布局
  • 回溯进阶(一):以全排列问题为例,来展示如何对回溯的纵向和横向进行操作
  • C++ 有哪些标准版本
  • eFish-SBC-RK3576工控板音频接口测试操作指南
  • ElementUI 表格el-table自适应高度设置
  • RISC-V架构深度解析
  • SPSS系统发育分析中的聚类相关part
  • Python案例实战《手势识别》
  • Linux:web服务nginx
  • 应急响应靶机-Linux(1):知攻善防实验室
  • 如何设置 FE 的内存大小?
  • Selenium Web自动化测试学习笔记(一)
  • IoTDB端边云同步技术的五大常见场景及简便使用方式
  • Vue:现代前端开发的基石引擎
  • Node.js入门指南:开启JavaScript全栈开发之旅
  • 【人工智能】基于“大模型”的智能化转型思路(通用版)
  • 16.状态模式:思考与解读
  • 《汽车电器与电子控制系统》复习内容
  • 三菱 FX 系列 PLC 转网口模块SG-FX-210
  • 基于flask+pandas+csv的报表实现