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

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!

转载于:https://my.oschina.net/u/3888259/blog/1836034

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值