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

為{幸葍}努か 提交于 2019-12-07 17:34:25

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!
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!