skynet 入门笔记(1):Hello, skynet!

原创
2018/06/27 00:28
阅读数 3.7K

Hello, Skynet!

Skynet这名字让我想起了经典科幻电影《终结者》里毁灭人类世界的终极人工智障,skynet的官方文档是挺给力的,但是没有那么好的引导机制,看了半天的文档还是不知道该怎么用skynet去写个最简单的Hello world,于是我就对着各种example试了半天。。

正文

skynet 不能被 install 到其他地方去,别想了。先写出Hello world再考虑其他问题吧。

这里就一口气搭建一个完整的project模板。

# 创建目录并初始化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文件,然后写下这些代码。

local skynet = require "skynet"

skynet.start(function()
    print('Hello world!')
    skynet.exit()
end)

最后在project目录执行

./skynet/skynet config

理应输出这样的文本

[: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!
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部