我有一个安装rabbitmq3.7.4的c#代码,Erlang 20.2在Windows Server 2012 R2上,我需要知道应用程序何时(不是服务)已启动。在运行rabbitmq-service install
和rabbitmq-service start
后,我正在查找指示应用程序正在运行的命令行。我知道wait pid_file, wait --pid pid
命令,但无法'I don“我的机器上找不到pid文件。文档内容如下:
此命令将等待RabbitMQ应用程序在节点上启动。如果指定了pidfile,它将等待创建pid文件
指定在哪里?
rabbitmq-echopid.bat会传回:
系统找不到指定的路径。
2条答案
按热度按时间5q4ezhmt1#
在Windows上,RabbitMQ默认情况下不创建PID文件,因此您必须发现PID,然后将其作为参数传递:
rabbitmqctl.bat wait -P PID
要发现PID,您可以使用RabbitMQ节点的名称运行以下命令:
此时,有一个错误,即
The system cannot find...
将在PID被回显之前被回显。我提交了this bug,很快就会有一个修复程序,但在此期间,您可以编辑rabbitmq-echopid.bat
脚本,将!TDP0!
更改为%TDP0%
。您也可以使用任何其他Windows工具来查找运行RabbitMQ的
erl.exe
进程的PID-请参阅脚本以获取wmic.exe
的示例,或者您可以使用tasklist
或Powershell等。mspsb9vt2#
在Windows上,可以运行以下批处理脚本:
请注意,要使
rabbitmq-echopid
命令正常工作,必须在节点名前添加一个-n
。此外,在上面的批处理脚本中,节点名是通过将“rabbit@”与
hostname
windows命令(在反斜线内)组合在一起动态生成的。