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

news2025/5/10 5:56:40

这里写目录标题

  • 一、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
then
    echo "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" ]]; then
    echo "Vllm is running with PID: $FLASK_PID"
else
    echo "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.coloradmin.cn/o/2372060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s的pod挂载共享内存

k8s的pod挂载共享内存&#xff0c;限制不生效问题&#xff1a; 注&#xff1a;/dev/shm 是 Linux 系统中用于共享内存的特殊路径。通过将 emptyDir 的 medium 设置为 Memory&#xff0c;可以确保 /dev/shm 正确地挂载到一个基于内存的文件系统&#xff0c;从而实现高效的共享内…

ubuntu创建虚拟环境安装ultralytics

安装Python和pip&#xff08;如果尚未安装&#xff09;: sudo apt update sudo apt install python3 python3-pip 安装virtualenv: sudo pip3 install virtualenv 创建虚拟环境: sudo virtualenv -p python3 myenv 这里myenv是虚拟环境的名称&#xff0c;-p python3指定使用…

【掌握 DDL】:SQL 中的数据库与表管理

掌握 DDL&#xff1a;SQL 中的数据库与表管理 掌握 DDL&#xff1a;SQL 中的数据库与表管理数据库 DDL创建数据库查看数据库查看所有数据库查看数据库创建语句 进入数据库删除数据库备份数据库备份恢复 查看数据库连接深入理解数据库创建与删除数据库字符集与校验规则 表 DLL创…

vscode docker 调试

目录 启动docker&#xff1a; vscode docker 调试 如果已经安装docker并且启动了。 启动docker&#xff1a; docker exec -it nlf /bin/bash vscode docker 调试 按照图中1 2 3 的顺序&#xff0c;进入&#xff0c;可以加载docker进行调试了。

HTML01:HTML基本结构

HTML基本结构 <html> <head><meta charset"UTF-8"><title>我的第一个网页</title> </head> <body>我的第一个网页 </body> </html><body、</body等成对的标签&#xff0c;分别叫开发标签和闭合标签单独…

URP - 屏幕图像(_CameraOpaqueTexture)

首先需要在unity中开启屏幕图像开关才可以使用该纹理 同样只有不透明对象才能被渲染到屏幕图像中 若想要该对象不被渲染到屏幕图像中&#xff0c;可以将其Shader的渲染队列改为 "Queue" "Transparent" 如何在Shader中使用_CameraOpaqueTexture&#xf…

如何在Ubuntu上安装NVIDIA显卡驱动?

作者&#xff1a;算力魔方创始人/英特尔创新大使刘力 一&#xff0c;前言 对于使用NVIDIA显卡的Ubuntu用户来说&#xff0c;正确安装显卡驱动是获得最佳图形性能的关键。与Windows系统不同&#xff0c;Linux系统通常不会自动安装专有显卡驱动。本文将详细介绍在Ubuntu系统上安…

机器视觉的手机FPC油墨丝印应用

在现代智能手机制造过程中&#xff0c;精密的组件装配和质量控制是确保产品性能和用户体验的关键。其中&#xff0c;柔性印刷电路板&#xff08;FPC&#xff09;的油墨丝印工艺尤为关键&#xff0c;它不仅影响到电路板的美观&#xff0c;更直接关系到电路的导电性能和可靠性。而…

Android智能体开发框架-架构文档

编写目的 1 提高智能体的开发效率&#xff0c; 2 降低系统开销&#xff0c; 3 支持跨平台扩展&#xff0c; 4 提供统一的开发范式 整体架构 接口层&#xff08;api层&#xff09;&#xff1a;提供API供开发者调用&#xff0c;支持Java/Kotlin和Native&#xff08;C&#x…

MySQL----数据库的操作

1. 查看数据库 语法&#xff1a;show databases; 示例展示&#xff1a; 2. 创建库 语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] database_name[CHARACTER SET charset_name][COLLATE collation_name]; 注意&#xff1a;[] 为可选项 {} 为必选项 database_name 为数据…

两种方法求解最长公共子序列问题并输出所有解

最长公共子序列&#xff08;Longest Common Subsequence, LCS&#xff09;是动态规划领域的经典问题&#xff0c;广泛应用于生物信息学&#xff08;如DNA序列比对&#xff09;、文本差异比对&#xff08;如Git版本控制&#xff09;等领域。本文将通过​​自顶向下递归记忆化​​…

【Linux网络】网络协议基础

网络基础 计算机网络背景 独立模式:计算机之间相互独立 网络互联:多台计算机连接在一起,完成数据共享 局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起 广域网WAN:将远隔千里的计算机都连在一起 所谓"局域网"和"广域网"只是一个相对的概念.比…

LeapVAD:通过认知感知和 Dual-Process 思维实现自动驾驶飞跃——论文阅读

《LeapVAD: A Leap in Autonomous Driving via Cognitive Perception and Dual-Process Thinking》2025年1月发表&#xff0c;来自浙江大学、上海AI实验室、慕尼黑工大、同济大学和中科大的论文。 尽管自动驾驶技术取得了显著进步&#xff0c;但由于推理能力有限&#xff0c;数…

windows 部署 Kafka3.x KRaft 模式 不依赖 ZooKeeper

1.下载 https://archive.apache.org/dist/kafka/3.9.0/kafka_2.12-3.9.0.tgz2.配置使用 KRaft 模式 2.1 修改 Kafka 的配置文件 cd D:\data\bigdata\kafka_2.12-3.9.0\config\kraft 修改 server.properties # 设置 Kafka 数据日志存储目录 log.dirsD:\\data\\bigdata\\kaf…

Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析

注&#xff1a;本文为 “Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析” 相关文章合辑。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 Xilinx FPGA 管脚 XDC 约束之&#xff1a;物理约束 FPGA技术实战 于 2020-02-04 17:14:53 发布 说明&#x…

Python-JsonRPC

Python-JsonRPC 使用Python学习JsonRPC数据交互 1-核心知识点 1&#xff09;什么是JsonRPC&#xff0c;这种协议是如何工作的&#xff1f;->使用请求进行验证2&#xff09;JsonRPC可以使用Postman进行验证吗&#xff1f;->可以使用POSTMAN进行调用&#xff08;使用HTTP请…

Redis从入门到实战——实战篇(下)

四、达人探店 1. 发布探店笔记 探店笔记类似于点评网站的评价&#xff0c;往往是图文结合。对应的表有两个&#xff1a; tb_blog&#xff1a;探店笔记表&#xff0c;包含笔记中的标题、文字、图片等tb_blog_comments&#xff1a;其他用户对探店笔记的评价 步骤①&#xff1…

面试问题(连载。。。。)

flexbox 和 crid 的区别 1. 布局维度与核心特性 Flexbox&#xff08;弹性盒子&#xff09; 一维布局&#xff1a;专注于行或列的线性排列&#xff0c;适合单方向&#xff08;水平或垂直&#xff09;的布局需求。动态分配空间&#xff1a;通过 flex-grow、flex-shrink 和 flex…

OpenCv实战笔记(1)在win11搭建opencv4.11.1 + qt5.15.2 + vs2019_x64开发环境

一. 准备工作 Visual Studio 2019&#xff08;安装时勾选 C 桌面开发 和 Windows 10 SDK&#xff09; CMake 3.20&#xff08;官网下载&#xff09; Qt 5.15.2&#xff08;下载 Qt Online Installer&#xff09;安装时勾选 MSVC 2019 64-bit 组件。 opencv 4.11.1 源码下载 git…

全局网络:重构数字时代的连接范式

从局部到全局 —— 网络架构的范式革命 在全球化与数字化深度融合的今天&#xff0c;传统网络架构的 “碎片化” 问题日益凸显&#xff1a;跨地域数据流通低效、设备互联孤岛化、安全策略难以统一。 全局网络作为一种突破地域与技术边界的新型网络架构&#xff0c;正成为企业…