skynet.newservice(“xxx”); 写的是xxx, 是一个目录的名字,而目录名下面有一个main.lua。 启动的正是这个main的脚本。
因为在之前skynet api的学习中, skynet.newservice,传入的的参数都是要启动的服务的脚本名字的。那为啥项目里传入的参数是目录名了。
带着这个问题,有必要深入地去看一下skynet 是如何启动一个lua服务的。
每个skynet进程在启动时,都会启动一个lua层的launcher服务,该服务主要负责skynet运作期间,服务的创建工作。
其他的lua服务都是需要有 launcher服务来创建的。
我们在lua层创建一个lua层服务时,通常会调用skynet.newservice函数。