Skynet這名字讓我想起了經典科幻電影《終結者》裏毀滅人類世界的終極人工智障,skynet的官方文檔是挺給力的,可是沒有那麼好的引導機制,看了半天的文檔仍是不知道該怎麼用skynet去寫個最簡單的Hello world,因而我就對着各類example試了半天。。linux
skynet 不能被 install 到其餘地方去,別想了。先寫出Hello world再考慮其餘問題吧。git
這裏就一口氣搭建一個完整的project模板。github
# 建立目錄並初始化git倉庫,固然也能夠不這麼作,記得把 skynet clone 下來就好。 mkdir project cd project git init . touch readme.md git add readme.md git commit -m 'first commit' git submodule add htttps://github.com/cloudwu/skynet.git # 編譯 skynet pushd skynet make linux # 記得先裝上依賴庫 popd # 軟連接出必要的庫,大多 service 和必要的代碼都在這裏面 ln -s ./skynet/cservice ./ ln -s ./skynet/luaclib ./ ln -s ./skynet/lualib ./ # skynet 從 service 目錄查找 lua 文件,不少 skynet 自帶的 service 都在這裏面,用戶可能要自行添加 service 因此複製出來 cp -r ./skynet/service ./ # 配置項的含義能夠直接看官方倉庫的wiki cat <<EOF root="./" thread=2 logger=nil harbor=0 start="main" bootstrap="snlua bootstrap" lualoader="lualib/loader.lua" cpath=root.."cserver/?.sp" > config
在 project/service
目錄裏建立 main.lua
文件,而後寫下這些代碼。shell
local skynet = require "skynet" skynet.start(function() print('Hello world!') skynet.exit() end)
最後在project
目錄執行bootstrap
./skynet/skynet config
理應輸出這樣的文本ui
[:00000001] LAUNCH logger [:00000002] LAUNCH snlua bootstrap [:00000003] LAUNCH snlua launcher [:00000004] LAUNCH snlua cdummy [:00000005] LAUNCH harbor 0 4 [:00000006] LAUNCH snlua datacenterd [:00000007] LAUNCH snlua service_mgr [:00000008] LAUNCH snlua main hello world!