作者:eyk0256912 | 来源:互联网 | 2023-05-18 17:43
1.看代码结构我们知道启动脚本run.sh,看脚本中的-ssdserver_start我们知道启动接口在sd.erl的server_start函数.2.我们打开sd.erl找到serve
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函数里有各种的初始化。
类似的,开启各个模块。。。。