将Minio等exe程序安装为Windows系统服务
项目需要用到对象存储,在Win server上部署程序时使用传统黑窗口启动服务会容易被误操作关掉,
服务器崩溃,断电重启时也会导致程序被杀掉,windows的开机自启又很不方便,
我们可以把Minio安装为windows服务,程序在后台静默运行,同时windows服务可以自动设置为开机自启,大大提升系统运维的稳定性

首先环境准备,由于Minio原生并不支持安装为Windows服务,所以我们需要借助第三方工具,目前主流的工具有Apache基金会的procrun, NSSM等,procrun功能更强大一些,但是配置,学习很复杂,这里推荐使用NSSM,操作简单且稳定
1. NSSM
下载地址: https://nssm.cc/
2. Minio
下载地址:https://www.minio.org.cn/download.shtml#/windows
注意,由于Minio已修改了开源协议,请注意自己的版本和项目版权策略!
3. 使用
下载后直接解压即可,

由于安装系统服务需要管理员权限,所以需要管理员权限启动CMD,根据自己的服务器版本切换到NSSM 32位或64位目录下,

执行命令 nssm install Minio 会弹出以下界面
第一个参数为程序地址,我们选择Minio.exe可执行文件,第二个参数为启动目录,即当前Minio可执行文件所处目录,可以为空, 第三个参数为exe启动参数,
设置为:server D:\Minio\data --console-address ":9001" --address ":9000", 那最终执行的命令就是 D:\Minio\minio.exe server D:\Minio\data --console-address ":9001" --address ":9000"
Service name输入Minio,可以任意自定义

然后点击install service即可安装成功了, 安装完成后可以使用命令启动服务,windows原生命令net start Minio, 或者nssm提供的命令,nssm start Minio,
4. 快捷脚本
为了方便使用,可以把命令编写为bat脚本快速执行
- 安装服务
@echo off
chcp 65001 >nul
cd /d "D:\NSSM\nssm-2.24\win64"
sc query Minio >nul 2>&1
if %errorlevel% == 0 (
echo Minio 服务已存在,请勿重复执行。
goto :end
)
nssm install Minio D:\Minio\minio.exe server D:\Minio\data --console-address :9001 --address :9000
:: 检查安装是否成功
if %errorlevel% == 0 (
echo MinIO 服务已安装!
) else (
echo 安装失败!请检查路径是否正确并以管理员权限启动。
goto :end
)
:end
cmd /k
2.卸载服务
@echo off
chcp 65001 >nul
cd /d "D:\NSSM\nssm-2.24\win64"
sc query Minio >nul 2>&1
if %errorlevel% neq 0 (
echo 未安装Minio服务。
goto :end
)
net stop Minio >nul 2>&1
if %errorlevel% equ 0 (
echo 服务 Minio 已停止。
) else (
echo 服务 Minio 停止失败或未运行,继续卸载...
)
nssm remove Minio confirm >nul 2>&1
if %errorlevel% equ 0 (
echo MinIO 服务已卸载!
) else (
echo 卸载失败!请以管理员身份运行此脚本。
goto :end
)
:end
cmd /k
3.查看服务状态
@echo off
chcp 65001 >nul
cd /d "D:\NSSM\nssm-2.24\win64"
sc query Minio >nul 2>&1
if %errorlevel% neq 0 (
echo 未安装Minio服务。
goto :end
)
nssm status Minio
:end
cmd /k
- 其他
NSSM 能把任何 .exe、脚本(.bat/.ps1)、甚至 Java/Python 程序“包装”成标准 Windows 服务,无需程序本身支持服务接口, 所以以上流程也适用于其他任何程序,自行更改脚本即可

浙公网安备 33010602011771号