2019独角兽企业重金招聘Python工程师标准>>>

本文详细说明了 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 。

转载于:https://my.oschina.net/moooofly/blog/107890

【原创】RabbitMQ启动参数具体含义相关推荐

  1. RabbitMQ启动参数具体含义

    本文详细说明了 rabbitmq 服务程序启动时配置参数的含义. [root@Betty mnt]# ps aux|grep rabbit root      3588  0.3  0.9 13342 ...

  2. java程序启动参数-D含义详解

    D<name>=<value>  :  set a system property  设置系统属性. 官方解释: Set a system property value. If ...

  3. PHP性能调优---php-fpm - 启动参数及重要配置详解

    一,php-fpm的启动参数   #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/loc ...

  4. php-fpm 启动参数及重要配置详解

    2019独角兽企业重金招聘Python工程师标准>>> php-fpm 启动参数及重要配置详解 约定几个目录 /usr/local/php/sbin/php-fpm /usr/loc ...

  5. SpringBoot笔记:SpringBoot启动参数配置

    文章目录 目的 测试代码 配置文件配置 获取自定义参数 项目打包发布 修改启动配置 方式一:系统变量 方式二:命令行参数 springboot启动参数解释 目的 1.熟悉springboot多环境配置 ...

  6. 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目

    阿里的面试官问了个问题,如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办, 答案: 当一个任务通过execute(Runnable)方法欲添加到线程池时: ...

  7. Java启动参数与内存调优一些学习笔记

    转载自  Java启动参数与内存调优一些学习笔记 .参数的含义 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M JV ...

  8. eclipse.ini配置eclipse的启动参数

    Eclipse的启动由$ECLIPSE_HOME/eclipse.ini控制,如果$ECLIPSE_HOME 没有被定义,则Eclipse安装目录下的默认eclipse.ini会生效. eclipse ...

  9. mysql启动参数(/etc/my.cnf)详解汇总

    mysql启动参数(/etc/my.cnf)详解汇总 MYSQL–my.cnf配置中文详解 basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = ...

最新文章

  1. 唉,面试官这 5 道题,难为我这 3 年经验了
  2. mysql mof_关于mysql mof提权研究
  3. chorme插件 ,在浏览器上模拟手机,pad 查看网页|前端技术开发必备插件
  4. 纯VB代码取得硬盘的物理序列号
  5. eas之Uuid和BOSUuid 区别
  6. 【长沙集训】2017.10.28
  7. 一个可解释的植物胁迫表型的深度机器视觉框架(大豆叶片胁迫程度估算)
  8. java 通用组件_写一个通用数据访问组件
  9. GNSS NMEA-0183 协议
  10. 使用python语解决一个小学数学题----鸡兔同笼问题
  11. laravel框架基础知识
  12. 辽宁省转升c语言考试真题,『2015年辽宁省考行测真题』2015年辽宁省考行测真题资料大全_2015年公务员辽宁省考行测真题及答案-华图教育...
  13. 5.用数组计算复利。有$1000,年利率6.5%,假设每月计息一次,计算10年的复利。输出要包括每年的利息、结余以及到改年为止的平均利息。
  14. thinkPHP中的控制器与视图层
  15. ioswebview混编_iOS 原生和H5混合开发总结
  16. java8 判断文件是否存在_java8 的files、path类相关文件遍历API
  17. 为机器学习模型设置最佳阈值:0.5是二元分类的最佳阈值吗
  18. Python键盘按键模拟
  19. pccs色卡_哪种颜色最让人觉得舒服?
  20. 山东17地市邮编php数组

热门文章

  1. am335x 配置 GPIO 为可输入也可输出
  2. [深度学习]实现一个博弈型的AI,从五子棋开始(1)
  3. 【Luogu1937】仓配置(贪心,线段树)
  4. Linux多任务编程——进程
  5. Codeforces 697C Lorenzo Von Matterhorn(严格二叉树的LCA) - xgtao -
  6. 阿里设计师出品!B端产品文案指南
  7. 13位PM告诉你:「陌生人社交」如何逃离互加微信“魔咒”?
  8. 如果CEO只给你1个月时间,如何完成从0到1
  9. 产品经理如何专业吐槽产品?友谊小船从此不再翻
  10. 支撑百亿级应用的 NewSQL——TiDB 在同程旅游的应用