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

推荐订阅源

F
Fortinet All Blogs
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
量子位
B
Blog
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
T
The Exploit Database - CXSecurity.com
N
News | PayPal Newsroom
Cloudbric
Cloudbric
A
About on SuperTechFans
AI
AI
Hacker News: Ask HN
Hacker News: Ask HN
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
有赞技术团队
有赞技术团队
H
Heimdal Security Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
D
Docker
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
IT之家
IT之家
Know Your Adversary
Know Your Adversary
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
B
Blog RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
博客园 - 叶小钗
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
The Hacker News
The Hacker News
Y
Y Combinator Blog
I
Intezer
The Register - Security
The Register - Security
F
Full Disclosure
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler

博客园 - 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),里面会有详细的错误信息。