浅谈erlang游戏服务器项目--英雄远征服务启动流程

来源:互联网 发布:微服务架构 数据库 编辑:程序博客网 时间:2024/04/30 18:23

1.看代码结构我们知道启动脚本run.sh,看脚本中的-s sd server_start我们知道启动接口在sd.erl的server_start函数.

2.我们打开sd.erl找到server_start函数


从这个函数上会执行start_applications(?SERVER_APPS),通过这个函数我们找到应用配置文件server.app

打开此文件:



在这个文件中我们看到一些参数,其中我们看到mod参数,知道执行sd_server_app.erl中的start函数.

下面打开sd_server_app.erl 我们看到有3个函数




首先我们看{ok, SupPid} =sd_sup:start_link(),这个是启动一个监控树进程,

然后看sd_networking:start([Ip, list_to_integer(Port), list_to_integer(Sid)]),,我们到sd_networking.erl看函数具体内容,



我们选start_kernel()函数看看



从这里可以看出开启一个sd_sup的子进程,模块在mod_kernel,执行函数start_link,

然后我们到mod_kernel.erl的start_link,



看这个我们知道执行回调函数init,然后我们看到init函数里有各种的初始化。


类似的,开启各个模块。。。。


1 0