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!
相关文章
相关标签/搜索