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!