skynet记录7:第一个服务logger和第二个服务bootstrap

时间:2021-11-15 17:13:21

(1)logger是skynet_context_new创建:skynet_context及mq,模块create和init

(2)bootstrap启动过程:snlua时一个lua的so,对应的snlua_create创建服务也就是一个lua虚拟机,snlua_init发消息给自己初始化调用bootstrap.lua,

snlua对应的服务收到消息后service_snlua.c/init_cb() 会执行loader.lua,可以认为它什么也没做,里面直接调用bootstrap.lua

bootstrap是c语言创建的服务,此后更多的服务有lua创建,虽然没有跟踪过程,但猜测其实现也应该是对snlua的包装。

(3)bootstrap.lua代码分析:

里面又启动了launcher.lua服务(最后bootstrap服务会退出,但launcher服务不退出,它管理所有的本地服务)

然后又启动了cmaster,cslave,datacenterd,service_mgr四个服务,都在service文件夹下,(cslave会启动harbor服务),

然后又启动了example/main.lua服务

稍后填坑