Blame view

publish/skynet/service/bootstrap.lua 1.04 KB
4d6f285d   zhouhaihai   增加发布功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  local skynet = require "skynet"
  local harbor = require "skynet.harbor"
  require "skynet.manager"	-- import skynet.launch, ...
  
  skynet.start(function()
  	local standalone = skynet.getenv "standalone"
  
  	local launcher = assert(skynet.launch("snlua","launcher"))
  	skynet.name(".launcher", launcher)
  
  	local harbor_id = tonumber(skynet.getenv "harbor" or 0)
  	if harbor_id == 0 then
  		assert(standalone ==  nil)
  		standalone = true
  		skynet.setenv("standalone", "true")
  
  		local ok, slave = pcall(skynet.newservice, "cdummy")
  		if not ok then
  			skynet.abort()
  		end
  		skynet.name(".cslave", slave)
  
  	else
  		if standalone then
  			if not pcall(skynet.newservice,"cmaster") then
  				skynet.abort()
  			end
  		end
  
  		local ok, slave = pcall(skynet.newservice, "cslave")
  		if not ok then
  			skynet.abort()
  		end
  		skynet.name(".cslave", slave)
  	end
  
  	if standalone then
  		local datacenter = skynet.newservice "datacenterd"
  		skynet.name("DATACENTER", datacenter)
  	end
  	skynet.newservice "service_mgr"
  	pcall(skynet.newservice,skynet.getenv "start" or "main")
  	skynet.exit()
  end)