skynet 入門筆記(1):Hello, skynet!

Hello, Skynet!

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!
相關文章
相關標籤/搜索