惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

博客园 - weipt

终于!我造了个「AI代驾」级别的AutoBuilder,一键干掉80%的重复CRUD工作 OpenClaw 配置飞书机器人完整指南:从零到每天定时推送天气 国产数据库私有化部署实战:PolarDB for PostgreSQL 免费容器版踩坑记 发票打印还在花钱?这款免费小工具,A4纸一半大小、自动排版,真香! 🔥 自己写的FBX转3D Tiles工具,免费!还能当模型浏览器用 相同代码在360浏览器能显示,在edge提示webgl不支持,edge下都最新的内核。 什么是技术架构、数据架构、业务架构、应用架构和代码架构? 使用pyinstaller打包的exe文件太大,怎么办 2026无人机新规正式施行!各位飞手赶紧收藏 谈谈EF的两种模式 谈谈EF Core 微软官方的 ORM(对象关系映射)框架 Next.js和blazor server比较开发网站哪个好 Blazor Server和 Blazor WebAssembly区别 关于vue项目中cesium的地图显示问题 关于顺丰退出抖音电商退货业务事件的分析 在WINDOWS上创建NTP授时服务器,并验证是否可用 这样的算作“全栈技术”吗? 大疆上云APIdemo打包配置 LoRa定位技术和蓝牙AoA定位技术的关系 Mysql查询工具,你还用navcat吗? jar注册为服务的方式 nginx怎么样配置rtmp推流服务器 时间戳和时间格式互转
用nssm将minio和srs注册成服务
weipt · 2025-09-16 · via 博客园 - weipt

首先,要注意一个关键问题,不要在nssm中直接调用bat

  1. NSSM 与 Bat 文件的问题:当NSSM启动一个批处理文件(.bat)时,它实际启动的是cmd.exe进程,而批处理中的命令(如minio.exe)则是其子进程。NSSM会监视cmd.exe的状态。一旦批处理中的命令执行完毕,cmd.exe进程就会退出,NSSM会认为服务已停止,从而可能尝试重启它,但这会导致进程管理混乱。更糟糕的是,直接关闭服务时,NSSM只能终止cmd.exe,而无法正确终止真正的目标进程(minio.exe),导致进程残留。

  2. MinIO 的特殊性:MinIO Server确实设计为需要在命令行环境中运行,因为它需要持续地输出日志和状态信息。

最佳解决方案:使用 NSSM 直接运行 minio.exe,并正确配置参数

我们不需要批处理文件。正确的方法是将NSSM的启动路径直接指向minio.exe,并将所有原本写在批处理文件中的参数和命令,全部放在NSSM的Arguments配置里。

以下是详细步骤:

第一步:准备目录和文件

假设你的软件布局如下:

├── Apps
│   ├── MinIO/
│   │   └── minio.exe   # MinIO 主程序
│   ├── SRS/
│   │   └── objs/
│   │       └── srs.exe # SRS 主程序
│   └── NSSM/
│       └── nssm.exe    # NSSM 工具
├── Data
│   └── MinIO/          # MinIO 数据目录
└── Logs
    ├── MinIO/          # MinIO 服务日志
    └── SRS/            # SRS 服务日志

请提前创建好这些目录(如C:\Data\MinIOC:\Logs\MinIOC:\Logs\SRS)。

第二步:以管理员身份启动命令行

右键点击“命令提示符”或“PowerShell”,选择“以管理员身份运行”。

第三步:安装并配置 MinIO 服务

我们使用NSSM的命令行模式进行安装,这样更清晰、可重复。

# 进入NSSM目录(或者如果你已将其加入系统PATH,则无需此行)
cd C:\Apps\NSSM

# 安装服务,并设置可执行文件路径
nssm install MinIO "C:\Apps\MinIO\minio.exe"

# 设置服务启动目录(非常重要)
nssm set MinIO AppDirectory "C:\Apps\MinIO"

# 设置启动参数:指定数据目录和控制台端口
nssm set MinIO AppParameters "server C:\Data\MinIO --console-address :9001"

# 设置显示名称和描述
nssm set MinIO DisplayName "MinIO Object Storage Server"
nssm set MinIO Description "High-performance, Kubernetes-native object storage"

# 【强烈推荐】配置日志输出,便于排查问题
nssm set MinIO Output "C:\Logs\MinIO\service_out.log"
nssm set MinIO Error "C:\Logs\MinIO\service_err.log"

# 【可选】设置标准输出和错误输出的文件轮转
nssm set MinIO FileRotate 1
nssm set MinIO FileRotateSize 1048576

# 【可选】配置服务在失败时自动重启
nssm set MinIO Start SERVICE_AUTO_START
nssm set MinIO ObjectName "NT AUTHORITY\LocalService" ""

第四步:安装并配置 SRS 服务

SRS的配置相对直接,因为它通常只需要一个配置文件参数。

# 安装SRS服务
nssm install SRS "C:\Apps\SRS\objs\srs.exe"

# 设置启动目录
nssm set SRS AppDirectory "C:\Apps\SRS\objs"

# 设置启动参数(指向配置文件)
nssm set SRS AppParameters "-c ..\conf\srs.conf"

# 设置显示名称和描述
nssm set SRS DisplayName "SRS Media Server"
nssm set SRS Description "Simple, Efficient, and Real-Time Video Server"

# 配置日志输出
nssm set SRS Output "C:\Logs\SRS\service_out.log"
nssm set SRS Error "C:\Logs\SRS\service_err.log"
nssm set SRS FileRotate 1

第五步:启动并测试服务

配置完成后,启动服务并进行测试。

# 启动服务
net start MinIO
net start SRS

# 检查状态(sc query 命令)
sc query MinIO
sc query SRS

测试方法:

  1. MinIO:打开浏览器,访问 http://localhost:9001。应该能看到MinIO的登录页面。

  2. SRS:可以使用OBS推一个RTMP流到 rtmp://localhost/live/test,然后用VLC播放器拉流(rtmp://localhost/live/test)进行测试。

  3. 检查日志:如果服务启动失败,第一时间查看你在第三步和第四步中设置的 Output 和 Error 日志文件(如 C:\Logs\MinIO\service_err.log),里面会有详细的错误信息。