Как я могу узнать, запущено ли приложение RabbitMQ

У меня есть код С#, который устанавливает rabbitmq 3.7.4, erlang 20.2 на Windows Server 2012 R2, и мне нужно знать, когда приложение (а не служба) запущено. После запуска rabbitmq-service install и rabbitmq-service start я ищу командную строку, которая укажет, что приложение запущено. Я знаю о команде wait pid_file, wait --pid pid, но не могу найти файл pid на своем компьютере. В документации говорится:

Эта команда будет ждать запуска приложения RabbitMQ на узле. Он будет ждать создания pid-файла, если указан pidfile.

указано где?

rabbitmq-echopid.bat возвращает:

Система не может найти указанный путь.


person Amir M    schedule 15.07.2018    source источник


Ответы (2)


В Windows RabbitMQ по умолчанию не создает файл PID, поэтому вам нужно обнаружить PID, а затем передать его в качестве аргумента: rabbitmqctl.bat wait -P PID

Чтобы узнать PID, вы можете запустить следующее, используя имя вашего узла RabbitMQ:

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

В настоящее время существует ошибка, из-за которой The system cannot find... будет отображаться до того, как будет отображен PID. Я зарегистрировал эту ошибку и скоро исправлю, а пока вы можете отредактировать скрипт rabbitmq-echopid.bat, чтобы изменить !TDP0! на %TDP0%.

Вы также можете использовать любой другой инструмент Windows, чтобы найти PID процесса erl.exe, выполняющего RabbitMQ — см. сценарий для примера wmic.exe, или вы можете использовать tasklist или Powershell и т. д.

person Luke Bakken    schedule 16.07.2018

В 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@ с командой hostname windows (внутри обратных кавычек).

person gogo_gorilla    schedule 16.09.2020