当前访客身份:游客 [ 登录  | 注册加入尚学堂]
直播

我来了!

拥有积分:4038
尚学堂雄起!!威武。。。

博客分类

笔记中心

课题中心

提问中心

答题中心

解答题中心

【原创】rabbitmq-echopid用户手册(翻译)

我来了! 发表于 2年前 (2014-11-07 16:33:59)  |  评论(0)  |  阅读次数(519)| 0 人收藏此文章,   我要收藏   

      为了方便工作中使用,周末抽空对 rabbitmq-echopid 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨。

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

================= 我是分割线 ==================

通过 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5个 General Command :

1. rabbitmqctl
2. 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 的内容如下 
@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

分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183