我想将 RabbitMQ 服务安装为 Windows 服务。我看到一个从安装程序 (v3.6.5) 安装 RabbitMQ 服务的选项。然而,它不起作用。
我编写了一个批处理脚本,尝试在运行安装程序文件后重新安装 RabbitMQ 服务。
set HOMEDRIVE=C:
set HOMEPATH=\Users\%username%
call "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-service.bat" remove
call "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-service.bat" install
call net start RabbitMQ
call "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
但是,这个脚本相当不稳定。 有时有效,但有时无效。
我在许多装有 Windows 10、Windows 8.1、Windows 7 和 Windows Server 2012 的电脑上进行了测试。
发生错误时,总是发生在
最后一个命令(启用RabbitMQ管理)
C:\Program Files\erl9.0\erts-9.0\bin\erlsrv: Service RabbitMQ removed from system.
C:\Program Files\erl9.0\erts-9.0\bin\erlsrv: Service RabbitMQ added to system.
The RabbitMQ service is starting.
The RabbitMQ service was started successfully.
Plugin configuration unchanged.
Applying plugin configuration to rabbit@<myhost>... failed.
* Could not contact node rabbit@<myhost>.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker.
有时,我会遇到此错误
...
Plugin configuration unchanged.
Applying plugin configuration to rabbit@<myhost>... failed.
Error: noproc
在我的电脑中,当
%HOMEDRIVE%%HOMEPATH% 为 C:\users\myusername 时,我收到第一个错误 (无法联系节点...)。当我更改为 C:\Windows 时,效果很好。然后我改回C:\users\,也运行良好,不再报错了。
但是,在装有 Windows Server 2012 的服务器上,即使C:\Windows 也无法工作 (无法联系节点...)。
在所有 PC 中,我在C:\Windows 和 C:\Users[用户名] 中都看到 .erlang.cookie 文件。 (我对 erlang 一无所知,只需遵循 StackOverFlow 中其他问题的一些说明即可)。
我的脚本有什么问题?
rabbitmq-service.bat install?
此处获取。我假设您问题中的 <myhost>
是经过编辑的主机名,而不是实际使用的主机名。你也没有提到你安装了哪个版本的 Erlang,但我认为它是最近的版本。您应该卸载 RabbitMQ 并确保从
C:\Users\myusername
(务必检查
%APPDATA%
)和
C:\Windows
中删除所有痕迹。在安装之前,您不必更改
HOMEDRIVE
和
HOMEPATH
的默认值。运行 Erlang 和 RabbitMQ
.exe
安装程序时使用管理帐户。请注意,
3.6.12
在 Windows 上存在此问题。解决方法是将
vm_memory_calculation_strategy
设置为
erlang
。我解决了这个问题,将在
3.6.13
内交付。感谢您使用 RabbitMQ!