文档章节

【原创】RabbitMQ启动参数具体含义

摩云飞
 摩云飞
发布于 2013/02/04 12:41
字数 1007
阅读 2460
收藏 18
     本文详细说明了 rabbitmq 服务程序启动时配置参数的含义。
[root@Betty mnt]# ps aux|grep rabbit
root      3588  0.3  0.9 133420 37812 ?        Sl   09:35   0:11 /usr/local/lib/erlang/erts-5.9.2/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/local/lib/erlang -progname erl -- -home /root -- -pa /usr/local/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@Betty -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Betty.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Betty-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/local/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Betty-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Betty" -noshell -noinput

     我们通常使用 erl <arguments> 命令启动 Erlang 的运行时系统,其中  arguments 就是我们启动时指定的各种参数。其类型如下:

  • +    emulator flag            there are a small number of "-" flags which now actually are emulator flags
  • -    flag    {init flag, user flag}  init process interprets init flags, and stores user flags.    
  • --   plain argument          init process plain argument, -extra causes everything that follows to become plain arguments

可以在 Erlang shell 或者 code 中通过如下调用获取相应的值:

  • init:get_argument/1                -- 获取指定 user flag 或者系统自定义 flag 的值
  • init:get_arguments/0              -- 获取所有 user flag 和系统自定义 flag 的值
  • init:get_plain_arguments/0     -- 获取所有 plain argument 的值

     下面将上面的启动参数进行分解说明:

/usr/local/lib/erlang/erts-5.9.2/bin/beam.smp 

-W w
==========
+W w | i
Sets the mapping of warning messages for error_logger. 
Messages sent to the error logger using one of the warning routines can be mapped either to errors (default), warnings (+W w), or info reports (+W i). The current mapping can be retrieved using error_logger:warning_map/0. See error_logger(3) for further information.
==========
-K true
==========
+K true | false
Enables or disables the kernel poll functionality if the emulator supports it. Default is false (disabled). If the emulator does not support kernel poll, and the +K flag is passed to the emulator, a warning is issued at startup.
==========
-A30
==========
+A size
Sets the number of threads in async thread pool, valid range is 0-1024. Default is 0.
==========
-P 1048576 
==========
+P Number
Sets the maximum number of concurrent processes for this system. Number must be in the range 16..134217727.
Default is 32768.
==========
-- 
==========
--(init flag)
Everything following -- up to the next flag (-flag or +flag) is considered plain arguments and can be retrieved using init:get_plain_arguments/0.
==========

-root /usr/local/lib/erlang 
-progname erl 

-- 
-home /root 
-- 

-pa /usr/local/sbin/../ebin
==========
-pa Dir1 Dir2 ...
Adds the specified directories to the beginning of the code path, similar to code:add_pathsa/1. See code(3).
As an alternative to -pa, if several directories are to be prepended to the code and the directories have a common parent directory, that parent directory could be specified in the ERL_LIBS environment variable. See code(3).
-pz Dir1 Dir2 ...
Adds the specified directories to the end of the code path, similar to code:add_pathsz/1. See code(3).
==========
-noshell
-noinput
==========
-noinput
Ensures that the Erlang runtime system never tries to read any input. Implies -noshell.
-noshell
Starts an Erlang runtime system with no shell. This flag makes it possible to have the Erlang runtime system as a component in a series of UNIX pipes.
==========
-s rabbit boot 
==========
-s Mod [Func [Arg1, Arg2, ...]](init flag)
Makes init call the specified function. Func defaults to start. If no arguments are provided, the function is assumed to be of arity 0. Otherwise it is assumed to be of arity 1, taking the list [Arg1,Arg2,...] as argument. All arguments are passed as atoms. See init(3).
==========
-sname rabbit @Betty -boot start_sasl 
==========
-sname Name
Makes the Erlang runtime system into a distributed node, similar to -name, but the host name portion of the node name Name@Host will be the short name, not fully qualified.
This is sometimes the only way to run distributed Erlang if the DNS (Domain Name System) is not running. There can be no communication between nodes running with the -sname flag and those running with the -name flag, as node names must be unique in distributed Erlang systems.
==========

-kernel inet_default_connect_options [{nodelay,true}] 
-sasl errlog_type error 
-sasl sasl_error_logger false 
-rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Betty.log"} 
-rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Betty-sasl.log"} 
-rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" 
-rabbit plugins_dir "/usr/local/sbin/../plugins" 
-rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Betty-plugins-expand" 
-os_mon start_cpu_sup false 
-os_mon start_disksup false 
-os_mon start_memsup false 
-mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Betty" 
==========
-Application Par Val
Sets the application configuration parameter Par to the value Val for the application Application, see app(4)
and application(3).
==========

-noshell 
-noinput

注:
上面参数中的 emulator flag 均使用的 - 号作为前缀,其在erts-5.9.2中的说明如下: 

It can be noted that there are a small number of "-" flags which now actually are emulator flags

      上面未进行解释说明的 -root /usr/local/lib/erlang 、-progname erl 和 -home /root 均为 user flag 。这些参数为运行时系统自动定义的。其中

  • root         The installation directory of Erlang/OTP, $ROOT.
  • progname     The name of the program which started Erlang.
  • home         The home directory.
上面多处出现 -- 但其后并未指定任何 plain argument 。

© 著作权归作者所有

共有 人打赏支持
摩云飞
粉丝 368
博文 534
码字总数 952694
作品 0
徐汇
程序员
【原创】rabbitmq-echopid用户手册(翻译)

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

摩云飞
2012/11/12
0
0
RabbitMQ系列(五)使用Docker部署RabbitMQ集群

使用Docker部署RabbitMQ集群 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍与实践 RabbitMQ事务和Confirm发送方消息确认—...

王磊的博客
07/24
0
0
【原创】rabbitmq-service用户手册(翻译)

为了方便工作中使用,周末抽空对 rabbitmq-service 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨。 官方原文:http://www.rabbitmq.com/man/rabbi...

摩云飞
2012/11/12
0
0
【原创】RabbitMQ 之 Plugins(翻译)

为了方便工作中使用,对 RabbitMQ 的【插件】相关文档进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨。此文以中英对照方式呈现。 官方原文:http://www.rabb...

摩云飞
2012/12/12
0
0
你不知道的RabbitMQ集群架构全解

你不知道的RabbitMQ集群架构全解 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍与实践 RabbitMQ事务和Confirm发送方消息确...

王磊的博客
07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
41分钟前
1
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
1
0
OSChina 周四乱弹 —— 上帝对我单身年限的惩罚越来越长了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享张卫健的单曲《身体健康》 《身体健康》- 张卫健 手机党少年们想听歌,请使劲儿戳(这里) 昨天是重阳节咯, 可惜小小编辑总是晚...

小小编辑
今天
12
1
django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部