【原創】rabbitmq-echopid用戶手冊(翻譯)

      爲了方便工做中使用,週末抽空對 rabbitmq-echopid 用戶手冊進行了翻譯,鑑於本身水平有限,翻譯中不免有紕漏產生,若是疑問,歡迎指出探討。 html

官方原文:http://www.rabbitmq.com/man/rabbitmq-echopid.man.html node

================= 我是分割線 ================== shell

經過 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5個 General Command : ide

1. rabbitmqctl
2. rabbitmq-plugins
3. rabbitmq-server
4. rabbitmq-service

5. rabbitmq-echopid ui

若要對 server 進行高級配置,則須要參考 administrator's guide(http://www.rabbitmq.com/admin-guide.html spa


命令名
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 off


REM Usage: rabbitmq-echopid.bat <rabbitmq_nodename>
REM
REM <rabbitmq_nodename> sname of the erlang node to connect to (required)


setlocal


if "%1"=="" goto fail


:: set timeout vars ::
set TIMEOUT=10
set TIMER=1


:: check that wmic exists ::
set WMIC_PATH=%SYSTEMROOT%\System32\Wbem\wmic.exe
if not exist "%WMIC_PATH%" (
  goto fail
)


:getpid
for /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 ::
:ok
endlocal
EXIT /B 0


:: something went wrong ::
:fail
endlocal
EXIT /B 1
相關文章
相關標籤/搜索