用nssm将minio和srs注册成服务
首先,要注意一个关键问题,不要在nssm中直接调用bat
- 
NSSM 与 Bat 文件的问题:当NSSM启动一个批处理文件(.bat)时,它实际启动的是 cmd.exe进程,而批处理中的命令(如minio.exe)则是其子进程。NSSM会监视cmd.exe的状态。一旦批处理中的命令执行完毕,cmd.exe进程就会退出,NSSM会认为服务已停止,从而可能尝试重启它,但这会导致进程管理混乱。更糟糕的是,直接关闭服务时,NSSM只能终止cmd.exe,而无法正确终止真正的目标进程(minio.exe),导致进程残留。
- 
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\MinIO, C:\Logs\MinIO, C:\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
测试方法:
- 
MinIO:打开浏览器,访问 http://localhost:9001。应该能看到MinIO的登录页面。
- 
SRS:可以使用OBS推一个RTMP流到 rtmp://localhost/live/test,然后用VLC播放器拉流(rtmp://localhost/live/test)进行测试。
- 
检查日志:如果服务启动失败,第一时间查看你在第三步和第四步中设置的 Output和Error日志文件(如C:\Logs\MinIO\service_err.log),里面会有详细的错误信息。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号