将Minio等exe程序安装为Windows系统服务

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

image

首先环境准备,由于Minio原生并不支持安装为Windows服务,所以我们需要借助第三方工具,目前主流的工具有Apache基金会的procrun, NSSM等,procrun功能更强大一些,但是配置,学习很复杂,这里推荐使用NSSM,操作简单且稳定

1. NSSM

下载地址: https://nssm.cc/

2. Minio

下载地址:https://www.minio.org.cn/download.shtml#/windows
注意,由于Minio已修改了开源协议,请注意自己的版本和项目版权策略!

3. 使用

下载后直接解压即可,
image

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

执行命令 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,可以任意自定义
image

然后点击install service即可安装成功了, 安装完成后可以使用命令启动服务,windows原生命令net start Minio, 或者nssm提供的命令,nssm start Minio,

4. 快捷脚本

为了方便使用,可以把命令编写为bat脚本快速执行

  1. 安装服务
@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
  1. 其他
    NSSM 能把任何 .exe、脚本(.bat/.ps1)、甚至 Java/Python 程序“包装”成标准 Windows 服务,无需程序本身支持服务接口, 所以以上流程也适用于其他任何程序,自行更改脚本即可
posted @ 2026-01-09 17:35  小鱼,  阅读(70)  评论(0)    收藏  举报