首页 > 解决方案 > 如何使用不同的帐户将 Apache ActiveMQ Artemis 作为 Windows 服务运行

问题描述

我想在 Windows Server 2016 上将 ActiveMQ Artemis (2.10.1) 作为 Windows 服务作为 Windows 服务运行。我遵循了文档:

在 Windows 上,您可以选择将 ActiveMQ Artemis 作为服务运行。只需使用以下命令来安装它:

$ ./artemis-service.exe install

只要我将用户切换到具有管理员权限的帐户,它就可以很好地工作。但是,在我正在工作的项目中,最好将服务作为特殊的“服务用户”帐户运行。

当开发自己的 Windows 服务时,可以使用ServiceProcessInstaller.Account类/属性来控制用于服务的帐户。

我猜这种行为是内置在artemis-service.exe二进制和随附的配置文件中的,artemis-service.xml.

但是我找不到任何文档或源代码。有谁知道?

标签: windows-servicesactivemq-artemis

解决方案


根据在构建 Artemis 期间的pom.xmlartemis-service.exe是从Maven Repository Artifact winsw中提取的来自github 上的 WinSW 的内容。根据其文档,您必须在 xml 文件中指定服务帐户:

服务帐号

可以指定服务运行的用户帐户(和密码)。为此,请指定如下元素:

<serviceaccount>
   <domain>YOURDOMAIN</domain>
   <user>useraccount</user>
   <password>Pa55w0rd</password>
   <allowservicelogon>true</allowservicelogon>
</serviceaccount>

<allowservicelogon>是可选的。如果设置为 true,将自动为列出的帐户设置“允许作为服务登录”权限。

有人已经尝试做类似您正在尝试的事情并将问题注册服务打开为本地服务而不是系统服务 #121


推荐阅读