erl命令用于启动erlang服务,其中的启动参数分为emulator flags、flags 和plain arguments。官方文档:http://www.erlang.org/doc/man/erl.html
下面是一段linux下的启动参数: #!bash
DOMAIN=127.0.0.1
erl +P 1024000 -smp auto -name node1@$DOMAIN -setcookie gameserver -boot start_sasl -config gameserver -pa ../ebin -s gameserver start -extra 12001 12002
主要分析一下-config和-s这2个参数。
-config指定调用Config.config配置,该配置里包含我们的applicaion信息,下面是一个简单的配置文件:
[
{
sasl,
[
{sasl_error_logger, false},
{error_logger_mf_ftype, [system, error]}, %% system|info|warning|error|other
{error_logger_mf_dir, "../logs/sasl"}, %%
{error_logger_mf_maxbytes, 1048760}, %%
{error_logger_mf_maxfiles, 10} %%
]
},
{
gameserver,
[
{mysql_config, [
"127.0.0.1",
3306,
"root",
"passwd",
"demo_db",
utf8
]},
{log_level, 5}
]
}
].
在该配置中,我们添加了sasl和gameserver两个application,sasl可用于格式化输出崩溃日志,而gameserver则是我们创建的application。关于自已创建的application,要有对应的.app配置文件,官方文档: http://www.erlang.org/doc/man/app.html
下面是一个简单的gameserver.app配置:
{
application, gameserver,
[
{description, ""},
{vsn, "1"},
{modules,[gameserver]},
{registered, [gameserver_app]},
{applications, [kernel, stdlib, sasl]},
{mod, {gameserver_app, []}},
{start_phases, []},
{env,[{server, ""}]}
]
}.
mod是application的启动模块,启动模块时会进入到gameserver_app:start/2函数中。