为了方便工作中使用,周末抽空对 rabbitmq-echopid 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨。
官方原文:
================= 我是分割线 ==================
通过 可知 RabbitMQ 有5个 General Command :
1. rabbitmqctl 2. rabbitmq-plugins 3. rabbitmq-server 4. rabbitmq-service5. rabbitmq-echopid
若要对 server 进行高级配置,则需要参考 administrator's guide()
命令名 rabbitmq-echopid.bat — 返回持有 RabbitMQ 服务的 Erlang runtime 进程 id 概要 rabbitmq-echopid.bat {sname} 描述 该命令仅在 WIN 下存在。 运行 rabbitmq-echopid 将会试图发现并回显持有 RabbitMQ 服务的 Erlang runtime 进程 (erl.exe) 的 PID 。为了允许 erl.exe 定时启动并加载 RabbitMQ,该脚本将会在 PID 被发现前等待10秒。 如果 PID 被发现,该脚本会在以 ERRORLEVEL 为0退出前将回显其值到 stdout 上,如果在超时前未发现 PID 值,则什么也不会回显到 stdout,而仅仅以 ERRORLEVEL 为1退出。 请注意该脚本仅在 Windows 平台上存在,因为需要等 erl.exe 的处理以及可能的超时情况。为了在 Unix 上获取 PID,需要在启动 rabbitmq-server 前设置 RABBITMQ_PID_FILE 的值,并且 rabbitmq-server 启动时不适用参数 -detached 。 选项 {sname} RabbitMQ 节点名字的 short-name 形式 rabbitmq-echopid.bat 的内容如下
@echo offREM Usage: rabbitmq-echopid.batREMREM sname of the erlang node to connect to (required)setlocalif "%1"=="" goto fail:: set timeout vars ::set TIMEOUT=10set TIMER=1:: check that wmic exists ::set WMIC_PATH=%SYSTEMROOT%\System32\Wbem\wmic.exeif not exist "%WMIC_PATH%" ( goto fail):getpidfor /f "usebackq tokens=* skip=1" %%P IN (`%%WMIC_PATH%% process where "name='erl.exe' and commandline like '%%-sname %1%%'" get processid 2^>nul`) do ( set PID=%%P goto echopid):echopid:: check for pid not found ::if "%PID%" == "" ( PING 127.0.0.1 -n 2 > nul set /a TIMER+=1 if %TIMEOUT%==%TIMER% goto fail goto getpid):: show pid ::echo %PID%:: all done :::okendlocalEXIT /B 0:: something went wrong :::failendlocalEXIT /B 1