转载+自己补充
erlang启动参数有3种:emulator flags, flags 和plain arguments。
emulator flags 是以“+”开头的,用来控制模拟器的行为,附送一个非常实用的例子:
- C:\>erl +V
- Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 5.8.2
flags 是以“-”开头的, 是erlang运行时系统的参数,可以用init:get_argument/1获得。
plain arguments 普通参数,在第一个flag参数前,或在-- flag之后,-extra后的参数都是普通参数。
- </pre><p><span class="bold_code">erl +W w -sname arnie +R 9 -s my_init -extra +bertie</span></p><p><strong></strong> </p><pre class="plain" name="code">% erl +W w -sname arnie +R 9 -s my_init -extra +bertie
- (arnie@host)1> init:get_argument(sname).
- {ok,[["arnie"]]}
- (arnie@host)2> init:get_plain_arguments().
- ["+bertie"]
Here +W w and +R 9 are emulator flags. -s my_init is an init flag, interpreted by init. -sname arnie is a user flag, stored by init. It is read by Kernel and will cause the Erlang runtime system to become distributed. Finally, everything after -extra (that is, +bertie) is considered as plain arguments.
Flags
-Application Par Val 把应用中的Par参数设置为值Val;
-args_file FileName 从文件FileName读取命令行参数;
-boot File 指定启动使用的boot文件,默认是$ROOT/bin/start.boot,在这个目录下还有start_clean.boot,start_sasl.boot。如果需要sasl的话,就“-boot start_sasl ”;
-boot_var Var Dir 代替$ROOT用的;
-code_path_cache 不常用;
-compile Mod1 Mod2 ... 不推荐使用了,应该使用erlc;
-config Config 指定配置文件,这个是很有用的,比如在Programming Erlang里,就用到 erl -boot start_sasl -config elog3,其中文件全名是elog3.config,内容如下:
- %% rotating log and minimal tty
- [{sasl,[
- {sasl_error_logger,false},
- %%define the parameters of the rotating log
- %%the log file directory
- {error_logger_mf_dir,"D:/erlang/otpexample/error_logs"},
- %% # bytes per log file
- {error_logger_mf_maxbytes,10485760}, %10 MB
- %%maximum number of logfiles
- {error_logger_mf_maxfiles,10}
- ]}].
配置的含义,请参考相关书籍;
-connect_all false 貌似不常用;
-cookie Cookie 被-setcookie代替了;
-detached 脱离console,跑后台erlang进程用的,看做"nohup **** &";
-emu_args debug用的,打印出实际传给模拟器的值;
-env Variable Value 设置操作系统环境变量用的,比如:
-eval Expr(init flag) 表达式做启动参数,比如(下列代码在本机执行出错,以后再研究):
- % erl -eval '{X,Y,Z}' = now(), random:seed(X,Y,Z).'
-extra(init flag) 后面跟的都是普通参数;
-heart 启动心跳监控器;
-hidden 设置为隐藏节点,该节点会连接集群的所有节点,但是在其他节点执行node/0,不会列出它;
-hosts Hosts erlang运行在那些服务器的IP地址;
-id Id 给erlang进程设置一个id,一般和-sname 和 -name一起用;
-init_debug 在启动/初始化erlang进程时,打印debug信息;
-instr
-loader Loader 为erl_prim_loader指定装载模块的方法,相当于java里指定classloader;
-make
-man Module
-mode interactive | embedded
-name Name 给一个erlang节点/进程设置一个名称
-noinput
-noshell
-nostick
-pa Dir1 Dir2 ...
-pz Dir1 Dir2 ...
-remsh Node 远程启动一个erlang节点,比如(当然RSA神马的,要先搞定):
- erl -sname node1 -remsh node2@machine2.example.com
-rsh Program 远程启动一个slave erlang节点,这里 http://www.linuxidc.com/Linux/2011-07/39157p3.htm 有一个例子;
-run Mod [Func [Arg1, Arg2, ...]]
-s Mod [Func [Arg1, Arg2, ...]]
-setcookie Cookie 给节点设置cookie,比如:
- erl -setcookie SFEWRG34AFDSGAFG35235 -name nodex
并且它是运行时可以改的:
- erlang:set_cookie(node(), 'SFEWRG34AFDSGAFG35235').
-shutdown_time Time 关闭节点需要的时间,如果超过,就直接kill,默认是infinity;
-sname Name 给节点设置名字,和-name类似,不过它的结果是:Name@Host ;
-smp [enable|auto|disable] 是否需要支持smp,默认应该是enable的,smp的好处见这里http://www.linuxidc.com/Linux/2011-07/39157p2.htm;
-version(emulator flag)
Emulator Flags
+a size 一般实用默认值就可以了。
Suggested stack size, in kilowords, for threads in the async-thread pool. Valid range is 16-8192 kilowords. The default suggested stack size is 16 kilowords, i.e, 64 kilobyte on 32-bit architectures. This small default size has been chosen since the amount of async-threads might be quite large. The default size is enough for drivers delivered with Erlang/OTP, but might not be sufficiently large for other dynamically linked in drivers that use the driver_async() functionality. Note that the value passed is only a suggestion, and it might even be ignored on some platforms.
+A size 一步线程池的大小,默认是0;比如执行werl +A 1,会看到:
- Erlang R14B01 (erts-5.8.2) [smp:2:2] [rq:2] [async-threads:1]
-
- Eshell V5.8.2 (abort with ^G)
+B [c | d | i]
+c
+d 默认情况下erlang进程遇到内部错误,比如oom,会产生一个crash dump和core dump,+d让节点只产生后者;
+e Number ETS表的最大数量;
+ec强制ETS表启动压缩,一般不用的;
+fnl 如果文件名使用了ISO-latin-1编码;
+fnu如果文件名使用了UTF-8 编码;
+fna 和当前操作系统一致;
+hms Size 指定erlang进程的默认(最小?)堆内存大小(这个应该不用太担心);
+hmbs Size 进程默认二进制虚拟内存堆大小;
+K true | false 是否开启kernel poll,就是epoll;
+l
+MFlag Value
+P Number erlang节点系统的最大并发进程数;
+R ReleaseNumber
+r
+rg ReaderGroupsLimit Limits the amount of reader groups used by read/write locks optimized for read operations in the Erlang runtime system. By default the reader groups limit equals 8.
+S Schedulers:SchedulerOnline
+sFlag Value
+t size
+T Level
+V 模拟器版本号
+v verbose
+W w | i
+zFlag Value
Environment variables
ERL_CRASH_DUMP
ERL_CRASH_DUMP_NICE
ERL_CRASH_DUMP_SECONDS
ERL_AFLAGS
ERL_ZFLAGS 和 ERL_FLAGS
ERL_LIBS
ERL_EPMD_PORT
分享到:
相关推荐
1.完成makefile,直接运行/...2.完成启动多节点的脚本,运行/script目录中的run.cmd可以启动3个节点, 节点的配置在/config目录config.txt中 3.完成跨节点函数的调用,记录日志都会在gm节点中执行 4.完成日志记录系统
在Erlang编程环境中,`Supervisor`是 OTP(Open Telephony Platform)设计模式中的一种,它是构建可靠、容错系统的重要组成部分。本篇博客的附件着重探讨了如何使用Erlang的`Supervisor`模块,并通过编写代码来演示...
Erlang日志系统启动日志应用:logger_app:start()可动态控制日志等级:loglevel:set(Level)获取当前日志等级:loglevel:get/0每次调用后都会重新编译logger,加载module添加了buffer缓存,每500ms或连续收到100条日志后...
4. **验证**:安装完成后,打开命令行窗口并输入`erl`,如果Erlang成功安装,你应该能看到Erlang的shell(REPL)启动。 Erlang 25.0版本可能包含以下改进和新特性: 1. **性能优化**:新版本通常会对语言性能进行...
在使用Erlang进行开发时,了解Erlang的REPL(Read-Eval-Print Loop)是很有帮助的,通过erl命令启动,可以快速测试代码和调试问题。Erlang还有强大的模块系统,每个文件对应一个模块,模块内包含函数定义。 OTP库...
安装完成后,你可以通过运行`erl`命令来启动Erlang shell,开始探索和使用Erlang 21.3的所有新特性。在开发过程中,熟练掌握Erlang的并发模型、模式匹配、函数式编程理念以及OTP框架,将有助于构建出高效、可靠的...
为了确保Erlang OTP能够正常工作,安装后可以验证其安装是否成功,例如通过命令行输入`erl`启动Erlang shell,如果能够进入交互式模式,就表明Erlang已正确安装。接下来,如果计划安装RabbitMQ,需要从RabbitMQ官方...
Erlang是一种并发性极强的编程语言,由瑞典电信公司Ericsson开发,因其在容错和高可用性方面的优秀特性,成为构建RabbitMQ的基础。 在安装RabbitMQ之前,首先需要安装Erlang环境,因为RabbitMQ是用Erlang编写的。...
3. 验证安装:安装完成后,可以在命令行输入"erl"来启动Erlang shell,如果出现Erlang的欢迎信息,说明安装成功。 Erlang与RabbitMQ的关系:RabbitMQ是一个开源的消息代理和队列服务器,广泛用于处理异步任务和实现...
- **验证安装**:启动Erlang/OTP,可以通过桌面快捷方式打开命令行界面。输入命令`1>`后,应显示类似以下输出: ``` Erlang/OTP 17 [erts-6.0] [64-bit] [smp:2:2] Eshell V6.0 (abort with ^G) 1> ``` - **...
要安装和运行RabbitMQ,首先需要在系统上安装Erlang环境,然后才能安装并启动RabbitMQ服务器。对于RPM包安装,通常可以通过`yum install`命令进行。对于源码编译,需要先解压,配置,编译,最后安装Erlang,然后再...
8. **验证安装**:最后,启动Erlang shell(`erl`命令),如果成功,你应该能看到Erlang的欢迎信息。 请注意,这个过程可能会因不同的操作系统(如Linux、macOS、Windows)而略有差异。在Windows环境下,你可能需要...
- 安装完成后,运行`erl`命令来启动Erlang shell。如果能正常启动且无错误提示,说明Erlang已成功安装。 7. **配置与优化**: - 根据实际需求,你可能还需要配置Erlang的环境变量,比如将`/usr/lib64/erlang/bin`...
安装完成后,用户可以通过命令行工具如`erl`启动Erlang shell,开始编写和测试代码。 总的来说,Erlang 24.0版本为Windows 64位用户提供了一个强大的开发和运行环境。无论是初次接触Erlang的开发者,还是已经在使用...
安装完成后,可以通过`erl`命令启动Erlang shell,验证安装成功。 RabbitMQ作为Erlang的一个关键应用,是基于AMQP(Advanced Message Queuing Protocol)的消息中间件。它可以将生产者和消费者之间的消息传递隔离...
安装过程中,你需要运行setup.exe来启动安装向导,按照提示进行安装。 总的来说,Erlang 23.1是RabbitMQ在Windows系统上运行的重要依赖,其新特性、改进和兼容性对于保障RabbitMQ的稳定性和效率至关重要。为了成功...
如果成功,将会启动Erlang shell。 5. **RabbitMQ集成**:安装Erlang之后,可以继续下载RabbitMQ的Windows版本。RabbitMQ服务器依赖Erlang环境运行,所以安装Erlang是使用RabbitMQ的前提。 6. **学习资源**:为了...
安装完成后,用户可以通过命令行检查Erlang是否成功安装,可以输入`erl`启动Erlang shell,如果出现Erlang的欢迎信息,说明安装成功。同时,Erlang的版本信息可以通过在shell中输入`erlang:system_info(version)`来...
- **基本操作**:包括启动交互式shell,进行简单的整数和浮点数运算,使用变量、原子、元组、列表等。 - **模式匹配**:Erlang中的一个重要特性是模式匹配,它允许开发者将数据结构中的信息提取出来。 - **模块化...
4. 启动和配置RabbitMQ:安装完成后,启动RabbitMQ服务,并可通过Web管理界面(默认端口15672)进行基本配置和监控。 对于Java开发者,可以通过使用`spring-amqp`或者`rabbitmq-java-client`库来与RabbitMQ交互,...