erlang启动参数

erlang启动参数有3种:

      emulator flags

      flags,

     plain arguments。

其中emulator flags 是以“+”开头的,用来控制模拟器的行为,附送一个非常实用的例子:
 1.C:\>erl +V 
 2. Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 5.8.2 


flags 是以“-”开头的, 是erlang运行时系统的参数,可以用init:get_argument/1获得。
 
plain arguments 普通参数,在第一个flag参数前,或在-- flag之后,-extra后的参数都是普通参数。

 1.erl +W w -sname arnie +R 9 -s my_init -extra +bertie 

 2.(arnie@host)1> init:get_argument(sname). 
 3.{ok,[["arnie"]]} 
 4.(arnie@host)2> init:get_plain_arguments(). 
 5.["+bertie"] 

 
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,内容如下:
 1.%% rotating log and minimal tty 
 2.[{sasl,[ 
 3.  {sasl_error_logger,false}, 
 4.  %?fine the parameters of the rotating log 
 5.  %%the log file directory 
 6.  {error_logger_mf_dir,"D:/erlang/otpexample/error_logs"}, 
 7.  %% # bytes per log file 
 8.  {error_logger_mf_maxbytes,10485760}, MB 
 9.  %%maximum number of logfiles 
 10.  {error_logger_mf_maxfiles,10} 
 11.  ]}]. 

 
配置的含义,请参考相关书籍;
 -connect_all false 貌似不常用;
-cookie Cookie 被-setcookie代替了;
 
-detached 脱离console,跑后台erlang进程用的,看做"nohup **** &";
 
-emu_args debug用的,打印出实际传给模拟器的值;
 
-env Variable Value 设置操作系统环境变量用的,比如:
 1.erl -env DISPLAY gin:0 
 
-eval Expr(init flag)  表达式做启动参数,比如(下列代码在本机执行出错,以后再研究):

 1.% 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神马的,要先搞定):
  1.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,比如:
 1.erl -setcookie SFEWRG34AFDSGAFG35235 -name nodex 
 
并且它是运行时可以改的:
 
1.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,会看到:
 
1.Erlang R14B01 (erts-5.8.2) [smp:2:2] [rq:2] [async-threads:1] 
2. 
3.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
 
11111111111111111111111111111111111111111111111111111111111111
+p 1342177725 起动时加这个参数将导致:内存使用加 1342177725*4bytes = 524287kbytes = 527mbytes
(这只是处理进程表所用内存)
11111111111111111111111111111111111111111111111111111111111111111
让Erlang服务器后台运行
erlang默认运行时是带有终端的,在开发过程中可以很方便的检查程序的bug,但在开发完成后,应该以后台的方式运行服务。
-noshell (该参数关闭终端,但依然不会后台运行,有输出时会直接打印到当前屏幕
-noinput 禁止终端下的输入
-hidden 隐藏运行
-detached 后台方式运行
其实最好用的就是-detached,如果将此参数加入启动脚本,程序会立即进入后台运行,你可以通过进程号将其调入到前台,在加入此参数运行服务器后,查看当前正在运行的程序,你会发现这个参数自动被分解成了 -noshell 和 -noinput, 所以,在加入-detached后,就不需要再加这两个参数了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值