为了方便工作中使用,周末抽空对 rabbitmq-echopid 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨。
官方原文:http://www.rabbitmq.com/man/rabbitmq-echopid.man.html
================= 我是分割线 ==================
通过 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5个 General Command :
1. rabbitmqctl2. rabbitmq-plugins
3. rabbitmq-server
4. rabbitmq-service
5. rabbitmq-echopid
若要对 server 进行高级配置,则需要参考 administrator's guide(http://www.rabbitmq.com/admin-guide.html)
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 的内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
@
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
|