erlang的启动参数分3类
    1、emulator flags
    以”+”开头,用来控制Erlang 虚拟机的行为
    例如: +P 表示erlang节点的最大进程数
    2、flags
    以”-“开头,是Erlang运行时的系统参数,可以通过init:get_argument(Key)或者init:get_arguments()来获取
    在启动的过程中这些参数都会传递给init进程
    3、plain flags
    普通参数,在”-flag”之后,或是”-extra”之后,可以通过init:get_plain_arguments获取
    其中的重要参数有
    -detached 脱离console,后台运行
    这样erlang虚拟机就进入了所谓的detached模式,在detached模式中,erlang静悄悄的在背后运行,没有常见的那个交互终端界面;
    -hidden 隐藏节点
    -setcookie 设置cookie
    4、在*.app中的env也可以指定参数
    这些参数通过application:get(Key,Val)获取

    +a size
    系统栈大小, 默认16KB
    +A size
    异步线程池大小, 默认为0
    +d
    系统错误不生成crash文件
    +e Number
    ETS表最大数量
    +K true | false
    是否启用操作系统的poll机制
    +P Number
    最大并发线程数
    +l
    自动载入启动跟踪器并显示
    +W w|i
    设置error_logger的警告信息

    -smp
    -smp[enable|disable|auto],auto默认,设置是否启动调度器,+S Number 设置调度器的数量(1到1024)
    rem 默认计算机几核,smp VM就有几个调度器

    -config Config 指定配置文件,这个是很有用的,比如在Programming Erlang里,就用到 erl -boot start_sasl -config elog3,其中文件全名是elog3.config,

    -pa 和 -pz
    设置:代码查找路径(类似于classpath),可以通过code:get_path().查看当前装载路径
    例如:-pa D:\code\ -pz E:\erlang
    pa pz这两个参数等效下面的方法:
    管理装载路径两个最常用的函数如下:
    @spec code:add_patha(Dir) => true | {error,bad_directory}
    添加新目录Dir到装载路径的开头
    @spec code:add_pathz(Dir) => true | {error,bad_directory}
    添加新目录Dir到装载路径的末尾
    通过code:all_loaded().查看当前装载的代码 , code:clash().可以帮助检查在路径上的名字冲突

    1. 可以修改$HOME/.erlang 来设置路径,例如: code:add_patha(“/home/argan/erl”).
    2. 也可以通过命令行参数来指定,
      例如: erl -pa /home/argan/erl/ -pz /home/argan/erl2/ -pz /home/argan/erl3/
    3. 当前路径的.erlang 比$HOME/.erlang优先级高
    4. 可以通过init:get_arguments().和init:get_argument(ArgumentName).

      -eval 直接运行代码 eg:-eval ‘make:all().’

      -name 长节点名 Name 给一个erlang节点/进程设置一个名称(还有-n、-sname)
      -name的值必须是xxxx@ip的形式。其中xxxx是英文名,ip必须是数字和点的形式。eg:server@127.0.0.1(其实不一定是数字和点,也可以是如mybox.home.net这种,当然也可以是 -sname那样 test@1 也是可以的)-name是完全限定域名,适用于配有DNS的普通网络环境。
      -sname 短节点名 适用于完全限定域名不可用的情况;eg: -sname test@1 或者 -sname test@a 都可以的。
      -n和-name是一样的,为了兼容依然保留。

      -setcookie Cookie 给节点设置cookie,比如:
      erl -setcookie SFEWRG34AFDSGAFG35235
      并且它是运行时可以改的:
      erlang:set_cookie(node(), ‘SFEWRG34AFDSGAFG35235’).
      设置cookie的三种方式
      (1) erlang启动参数 - 图1%20erl%20-setcookie%20C%0A(3)%20erlang%3Aset_cookie(node()%2C%20C)%0A%C2%A0%0A-noshell%C2%A0%EF%BC%9A%E5%90%AF%E5%8A%A8Erlang%E8%80%8C%E6%B2%A1%E6%9C%89%E4%BA%A4%E4%BA%92%E5%BC%8Fshell%EF%BC%8C%E6%AD%A4%E6%97%B6%E4%B8%8D%E4%BC%9A%E5%BE%97%E5%88%B0Erlang%E7%9A%84%E5%90%AF%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%9D%A5%E6%8F%90%E7%A4%BA%E6%AC%A2%E8%BF%8E%E3%80%82%0A%C2%A0%0A-s%C2%A0hello%20start%20%EF%BC%9A%E8%BF%90%E8%A1%8C%E5%87%BD%E6%95%B0%20hello%3Astart()%20%EF%BC%8C%E6%B3%A8%E6%84%8F%E4%BD%BF%E7%94%A8%20-s%20Mod%20%E2%80%A6%20%E9%80%89%E9%A1%B9%E6%97%B6%EF%BC%8C%E7%9B%B8%E5%85%B3%E7%9A%84%E6%A8%A1%E5%9D%97Mod%E5%BF%85%E9%A1%BB%E5%B7%B2%E7%BB%8F%E7%BC%96%E8%AF%91%E5%AE%8C%E6%88%90%E4%BA%86%E3%80%82%0A-run%C2%A0Mod%20%5BFunc%20%5BArg1%2C%20Arg2%2C%20…%5D%5D%0A-s%C2%A0Mod%20%5BFunc%20%5BArg1%2C%20Arg2%2C%20…%5D%5D%0A%C2%A0%0A-boot%C2%A0File%C2%A0%C2%A0%E6%8C%87%E5%AE%9A%E5%90%AF%E5%8A%A8%E4%BD%BF%E7%94%A8%E7%9A%84boot%E6%96%87%E4%BB%B6(%E5%BC%95%E5%AF%BC%E6%96%87%E4%BB%B6)%EF%BC%8C%E9%BB%98%E8%AE%A4%E6%98%AF#card=math&code=HOME%2F.erlang.cookie%0A%282%29%20erl%20-setcookie%20C%0A%283%29%20erlang%3Aset_cookie%28node%28%29%2C%20C%29%0A%C2%A0%0A-noshell%C2%A0%EF%BC%9A%E5%90%AF%E5%8A%A8Erlang%E8%80%8C%E6%B2%A1%E6%9C%89%E4%BA%A4%E4%BA%92%E5%BC%8Fshell%EF%BC%8C%E6%AD%A4%E6%97%B6%E4%B8%8D%E4%BC%9A%E5%BE%97%E5%88%B0Erlang%E7%9A%84%E5%90%AF%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%9D%A5%E6%8F%90%E7%A4%BA%E6%AC%A2%E8%BF%8E%E3%80%82%0A%C2%A0%0A-s%C2%A0hello%20start%20%EF%BC%9A%E8%BF%90%E8%A1%8C%E5%87%BD%E6%95%B0%20hello%3Astart%28%29%20%EF%BC%8C%E6%B3%A8%E6%84%8F%E4%BD%BF%E7%94%A8%20-s%20Mod%20%E2%80%A6%20%E9%80%89%E9%A1%B9%E6%97%B6%EF%BC%8C%E7%9B%B8%E5%85%B3%E7%9A%84%E6%A8%A1%E5%9D%97Mod%E5%BF%85%E9%A1%BB%E5%B7%B2%E7%BB%8F%E7%BC%96%E8%AF%91%E5%AE%8C%E6%88%90%E4%BA%86%E3%80%82%0A-run%C2%A0Mod%20%5BFunc%20%5BArg1%2C%20Arg2%2C%20…%5D%5D%0A-s%C2%A0Mod%20%5BFunc%20%5BArg1%2C%20Arg2%2C%20…%5D%5D%0A%C2%A0%0A-boot%C2%A0File%C2%A0%C2%A0%E6%8C%87%E5%AE%9A%E5%90%AF%E5%8A%A8%E4%BD%BF%E7%94%A8%E7%9A%84boot%E6%96%87%E4%BB%B6%28%E5%BC%95%E5%AF%BC%E6%96%87%E4%BB%B6%29%EF%BC%8C%E9%BB%98%E8%AE%A4%E6%98%AF&id=IfTj1)ROOT/bin/start.boot,在这个目录下还有start_clean.boot,start_sasl.boot。如果需要sasl的话,就“-boot start_sasl ”;

      -root_dir 设置系统的跟目录;

      -args_file FileName 从文件FileName读取命令行参数;

      -Application Par Val 把应用中的Par参数设置为值Val;

      -heart 启动心跳监控器;
      -hidden 设置为隐藏节点,该节点会连接集群的所有节点,但是在其他节点执行node/0,不会列出它;
      -hosts Hosts erlang运行在那些服务器的IP地址;
      -id Id 给erlang进程设置一个id,一般和-sname 和 -name一起用;
      +ec 强制ETS表启动压缩,一般不用的;
      +fnl 如果文件名使用了ISO-latin-1编码;
      +fnu 如果文件名使用了UTF-8 编码;
      +fna 和当前操作系统一致;

      -remsh Node 远程启动一个erlang节点,比如(当然RSA神马的,要先搞定):
      erl -sname node1 -remsh node2@machine2.example.com
      -rsh Program 远程启动一个slave erlang节点

      -shutdown_time Time 关闭节点需要的时间,如果超过,就直接kill,默认是infinity;
      +hms Size 指定erlang进程的默认(最小?)堆内存大小(这个应该不用太担心);
      +hmbs Size 进程默认二进制虚拟内存堆大小;

      让Erlang服务器后台运行
      erlang默认运行时是带有终端的,在开发过程中可以很方便的检查程序的bug,但在开发完成后,应该以后台的方式运行服务。
      -noshell (该参数关闭终端,但依然不会后台运行,有输出时会直接打印到当前屏幕
      -noinput 禁止终端下的输入
      -hidden 隐藏运行
      -detached 后台方式运行
      其实最好用的就是-detached,如果将此参数加入启动脚本,程序会立即进入后台运行,你可以通过进程号将其调入到前台,在加入此参数运行服务器后,查看当前正在运行的程序,你会发现这个参数自动被分解成了 -noshell 和 -noinput, 所以,在加入-detached后,就不需要再加这两个参数了。
      +pc 这个选项的作用就是选择Shell可打印字符的范围,可以是erl +pc latin1 或者 erl +pc unicode,影响中文显示。