为了账号安全,请及时绑定邮箱和手机立即绑定

我怎么知道RabbitMQ应用程序是否已经启动

我怎么知道RabbitMQ应用程序是否已经启动

C#
慕沐林林 2021-10-09 10:27:45
我有在 windows server 2012 R2 上安装 rabbitmq 3.7.4、erlang 20.2 的 ac# 代码,我需要知道应用程序(而不是服务)何时启动。运行后rabbitmq-service install,rabbitmq-service start我正在寻找一个指示应用程序正在运行的命令行。我知道该wait pid_file, wait --pid pid命令,但在我的机器上找不到 pid 文件。文档说:此命令将等待 RabbitMQ 应用程序在节点上启动。如果指定了 pidfile,它将等待创建 pid 文件指定在哪里?rabbitmq-echopid.bat 返回:该系统找不到指定的路径。
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

在 Windows 上,RabbitMQ 默认不创建 PID 文件,因此您必须发现 PID,然后将其作为参数传递: rabbitmqctl.bat wait -P PID

要发现 PID,您可以使用 RabbitMQ 节点的名称运行以下命令:

.\rabbitmq-echopid.bat rabbit@my-hostname

这时候有一个bug,就是The system cannot find...在回显PID之前会先回显。我提交了这个错误,很快就会修复,但同时你可以编辑rabbitmq-echopid.bat脚本以更改!TDP0!%TDP0%.

您还可以使用任何其他 Windows 工具来查找erl.exe运行 RabbitMQ的进程的 PID - 有关 的示例,请参阅脚本wmic.exe,或者您可以使用tasklist、或 Powershell 等。


查看完整回答
反对 回复 2021-10-09
?
POPMUISE

TA贡献1765条经验 获得超5个赞

在 Windows 上,您可以运行以下批处理脚本:


START /B rabbitmq-server


START /wait cmd /c "rabbitmq-echopid.bat -n rabbit@`hostname` > rabbitmq_pid.txt"

set /p PID=<rabbitmq_pid.txt

echo %PID%

del rabbitmq_pid.txt


cmd /c "rabbitmqctl wait -P %PID%"

请注意,要使rabbitmq-echopid命令起作用,您必须-n在节点名之前添加一个。


此外,在上面的批处理脚本中,节点名是通过将“rabbit@”与hostnamewindows 命令(在反引号内)结合起来动态生成的。


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 554 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信