尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SRS 如何用信号热加载配置而不中断在线连接
SRS 如何用信号热加载配置而不中断在线连接【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srs当 SRS 正在服务在线推流/拉流连接时你修改了srs.conf并需要让新配置生效又不想重启进程、断开任何连接。SRS 的 reload 机制就是为此设计的向进程发送信号即可重新应用配置已有连接保持不断开。本文基于 SRS 仓库内的 Reload 文档 和 Linux Service 文档 给出可执行的操作路径与验证方式。前提条件先确认 SRS 进程正在运行发送 reload 信号前必须有一个在运行的 SRS 进程。仓库中 init.d 脚本 通过 pid 文件定位进程pid 文件取自配置中的pid指令未配置时默认是./objs/srs.pid。两种常用启动方式详见 service.md# 方式一直接用 init.d 脚本启动需在 SRS 根目录下执行脚本内 ROOT 为 ./ cd srs根目录 ./etc/init.d/srs start# 方式二直接运行二进制 ./objs/srs -c conf/srs.conf注意 init.d 脚本 顶部的ROOT、APP、CONFIG均按脚本所在目录解析默认为./objs/srs和./conf/srs.conf所以如果你从其他目录启动过 SRS文档提示需要相应修改脚本中的路径或者从 SRS 根目录调用脚本。修改配置并发送 SIGHUP 触发 reload先编辑你的配置文件例如srs根目录/conf/srs.conf然后从以下三种方式中任选一种触发 reload来自 reload.md# 按进程名发送 SIGHUP killall -1 srs# 按 PID 发送 SIGHUP7635 为文档示例中的进程号替换为你实际的 PID kill -1 7635# 使用 SRS 自带的 init.d 脚本需已链接到 /etc/init.d/srs # 链接方法见 service.md Step2sudo ln -sf /usr/local/srs/etc/init.d/srs /etc/init.d/srs /etc/init.d/srs reload脚本方式内部的行为可以直接对照 init.d 脚本的 reload 函数 理解通过 pid 文件加载进程信息如果进程不存在输出SRS not start.并直接返回向进程发送SIGHUPkill -s SIGHUP pid发送失败输出Reload SRS failed retret再次检查进程仍在运行成功输出SRS reloaded进程消失则输出SRS reload failed.。验证 reload 是否生效验证分三层都来自仓库文档1. 进程仍然存活。用脚本的 status 子命令确认/etc/init.d/srs status进程正常时输出类似SRS(pid pid) is running.文档示例措辞说明 reload 没有把进程打挂。2. 日志中记录了信号。SRS 默认把日志写入文件默认路径./objs/srs.log见 log.md。日志按 session 化格式记录收到的信号log.md 给出的系统信息日志示例中就有这样的行文档示例signo为信号编号[2014-04-04 11:39:26.799][trace][0][11] get a signal, signo2SIGHUP 是信号 1你应看到编号对应的get a signal记录而不是user terminate program这类退出日志。3. 在线连接未中断。这正是 reload.md 声明的用途Donot restart server to apply new config、Donot disconnect user connections。验证时保持一个正在拉流的客户端例如 RTMP 或 HTTP-FLV 播放发送信号后观察播放是否持续即可确认 reload 语义成立。哪些配置不能热加载reload.md 明确列出两项不支持 reload 的配置配置说明daemon是否以守护进程模式启动永远不支持 reloadvhost 的modevhost 作为 origin 还是 edge不允许直接切换文档解释不能直接切换 vhost 模式的原因origin 与 edge 的切换过于复杂origin 一般固定在一个设备组内、实际上不会变成 edgeupnode/origin 重启对用户无影响edge 会自动重试。文档给出的替代操作路径workaround是从配置中删除该 vhost然后 reload确认该 vhost 确实已被删除——reload 是异步的原文Ensure the vhost is deleted, for the reload is async以新的mode重新添加该 vhost然后再 reload 一次。限制与容易混淆的信号reload 由 SIGHUP 触发不要与 init.d 脚本 中的其他子命令混淆rotate发送的是SIGUSR1仅用于重新打开日志文件做 log rotategrace发送SIGQUIT优雅退出restart会先 stop 再 start、会断开连接。三者都不是热加载。daemon与 vhostmode的变更只能按上文 workaround 或重启处理。在 K8s 环境中k8s.md 提到 Auto Reload by Inotify监听 ConfigMap 变更自动 reload的能力但该章节正文仍为 Coming soon...当前仓库文档未给出可用步骤本文不将其作为操作路径。完成一次kill -1 pid或/etc/init.d/srs reload后若 status 显示进程仍在运行、日志出现get a signal且在线播放未中断、新配置项已按预期工作即表示热加载完成对于daemon/vhostmode这类不可热加载项按删除 vhost → reload → 确认删除 → 重新添加 → reload 的两段式路径处理。【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何用 hang analyzer 为疑似挂起的 MongoDB 测试进程收集 core dump 与堆栈信息

如何用 hang analyzer 为疑似挂起的 MongoDB 测试进程收集 core dump 与堆栈信息

如何用 hang analyzer 为疑似挂起的 MongoDB 测试进程收集 core dump 与堆栈信息 【免费下载链接】mongo The MongoDB Database 项目地址: https://gitcode.com/GitHub_Trending/mo/mongo 在 MongoDB 源码树里用 resmoke 跑 jstests 时,测试经常会卡在某个阶…

📅 2026/9/12 14:43:20
抽样方案怎么分步设计?四张作业单,写到别人能照着做

抽样方案怎么分步设计?四张作业单,写到别人能照着做

抽样方案不是「我打算怎么抽样」的表态,而是一份能被别人照着执行的作业规定。判它合不合格只须看一件事:把方案交出去,接手的人能不能独立取出同一批人。这一篇只讲四张作业单怎么定,四张填实了,方案才算交得出去。 相…

📅 2026/9/12 14:38:20
STM32C552 ADC电压采集实战:从CubeMX配置到DMA多通道滤波

STM32C552 ADC电压采集实战:从CubeMX配置到DMA多通道滤波

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/12 14:38:20
MORE NEWS

更多资讯

📰

云原生数据库选型:从单体升级到能力重构

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

WolfCut:基于Rust与Tauri的本地化开源视频剪辑器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Java接口与抽象类的核心区别与应用场景

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

22kW永磁同步电机V型磁钢设计与优化实践

1. 项目背景与核心价值 永磁同步电机(PMSM)作为高效能电机设计的代表,在工业驱动、新能源汽车等领域占据越来越重要的地位。这次分享的22kW 6极36槽V型磁钢设计案例,是我们团队在伺服系统升级项目中实际验证过的成熟方案。相比传统…

📰

S7-200 PLC与组态王在污水处理自动控制中的实战应用

干污水处理自动控制这些年,和 S7-200 PLC、组态王打交道最多。这两个名字在行业内听起来可能觉得老,但在中小型污水站里,它们稳定、便宜、资料多,短周期就能交项目。组态王负责上位机画面、报警和记录,S7-200 负责现场…

📰

PPT计时器实现方案与VBA编程技巧

1. PPT计时器项目概述在商务演示、学术汇报和培训讲座等场景中,时间控制是决定展示效果的关键因素之一。PPT计时器作为一种辅助工具,能够帮助演讲者精准把控每个环节的时长,避免超时或提前结束的尴尬。不同于简单的手机倒计时功能&#xff0c…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬