admin 管理员组

文章数量: 887609

一、引言

众所周知,在 Windows 环境下想要启动 nacos 需要运行 bin 目录下的 startup.cmd。这样的启动方式需要保证 cmd 窗口一直开着,只要把这个窗口关掉,nacos 服务就停了。

所以为了避免人为的误关窗口,把 nacos 注册成一个 winserver 就是一个好的选择。这样不仅可以保证nacos一直在后台运行,还可以通过注册的服务名自定义开机自启动等。

二、工具WinSW

2.1 WinSW介绍

WinSW (Windows Service Wrapper) 是一个开源工具,用于将任何可执行文件包装成 Windows 服务。以下是关于 WinSW 的一些关键点:
1.功能:
将非服务应用程序作为 Windows 服务运行。
支持安装、启动、停止、暂停和恢复服务操作。
提供日志记录功能,便于调试和监控服务运行状态。
使用 XML 配置文件来定义服务行为,易于管理和定制。

2.工作原理:
WinSW 是一个代理服务,它启动并监视你指定的可执行文件,将其操作映射到服务控制管理器(SCM)的操作上。
当服务启动时,WinSW 会启动你的应用程序,并在应用程序退出或发生错误时报告给 SCM。

3.安装:
下载 WinSW 安装包,通常包含 WinSW.exe 和 winsw.xml 示例配置文件。
根据需要自定义 winsw.xml,指定服务名称、可执行文件路径等参数。
使用 WinSW.exe install 命令安装服务,WinSW.exe uninstall 卸载服务。

4.配置:
配置文件是 XML 格式的,包括服务 ID、服务名称、可执行文件路径、启动参数等。
可以配置服务依赖、环境变量、日志路径等高级选项。

5.语言支持:
WinSW 是用 Java 编写的,因此可以在任何支持 Java 运行时的平台上运行。
存在.NET 版本(NetCoreSW)供 .NET 应用程序使用。

6.社区与资源:
WinSW 有一个活跃的社区,提供文档、示例和持续更新。
官方仓库托管在 GitHub 上,允许用户提交问题、请求功能或贡献代码。

7.安全性:
由于 WinSW 运行在提升权限的环境中,确保安全配置是非常重要的。
应限制服务账户的权限,避免不必要的系统访问。

总的来说,WinSW 是一个方便的工具,可以帮助开发者轻松地将他们的应用程序作为 Windows 服务进行部署和管理。

2.2 工具下载

这个工具下载可能很慢,已上传压缩包,见顶部

下载地址

https://github/winsw/winsw/releases

笔者下载的时候,最新可用版本是 v2.11.0 。

根据操作系统的位数不同,下载不同的 exe 文件,我这里下载的是64位的执行文件

三、配置nacos-service.xml

下载好 exe 文件后,执行如下两个步骤

  • 将WinSW-x64.exe文件重命名为 nacos-service.exe,放在 nacos 的 bin 目录下
  • 创建配置文件 nacos-service.xml

nacos-service.xml 文件的内容如下: 

<service>
  <!-- 唯一服务ID -->
  <id>nacos</id>
  <!-- 显示服务的名称 -->
  <name>Nacos Service</name>
  <!-- 服务描述 -->
  <description>Nacos服务</description>
  <!-- 日志路径 -->
  <logpath>你的nacos路径\nacos\bin\logs\</logpath>
  <!-- 日志模式 -->
  <logmode>roll</logmode>
  <!-- 可执行文件的命令 -->
  <executable>你的nacos路径\nacos\bin\startup.cmd</executable>
  <!-- 停止可执行文件的命令 -->
  <stopexecutable>你的nacos路径\nacos\bin\shutdown.cmd</stopexecutable>
</service> 

四、安装Nacos Service服务

在 "你的nacos路径\nacos\bin" 下,运行以下命令,将 nacos 注册成 Windows 服务

nacos-service.exe install

五、查看Nacos Service服务

六、启动Nacos Service服务

按组合键 Win + X,选择 Windows PowerShell(管理员)

输入如下命令启动 nacos 服务:

net start nacos

停止 nacos 服务:

net stop nacos

注:将 java jar 包注册成 Windows 服务同理,把 WinSW 文件复制到和 jar 包同一层级下,然后修改 jar 包名称。

之后再新建一个 xml 配置文件,文件和 nacos 的大同小异,内容如下:

<service>
  <!-- 指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成 -->
  <id>server-id</id>
  <!-- 服务的简短名称,它可以包含空格和其他字符。尽量简短,就像“id”一样,在系统的所有服务名称中,也要保持唯一 -->
  <name>server-name</name>
  <!-- 该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中 -->
  <description>This runs Spring Boot as a Service.</description>
  <!-- 该元素指定要启动的可执行文件 -->
  <env name="HOME" value="%BASE%"/>
  <executable>java</executable>
  <arguments>-Xmx256m -Dfile.encoding=UTF-8 -jar "%BASE%\你的jar包名称.jar"</arguments>
  <!-- 日志输出位置 -->
  <logpath>%BASE%\logs</logpath>
    <log mode="roll-by-size">
        <sizeThreshold>10240</sizeThreshold>
        <keepFiles>8</keepFiles>
    </log>
</service>

七、卸载Nacos Service服务

如果你需要卸载,进入到 nacos 的 bin 目录下,执行以下命令:

nacos-service.exe uninstall

本文标签: 详解 Nacos Windows