构建服务脚手架
为啥需要脚手架?
如果你对缘由感兴趣,可以看看这个
作用
- 生成skynet 启动配置文件
- 生成服务基础运维脚本
构建命令
skynet_fly/binshell/make_server.sh skynet_fly_path
我们已构建skynet_fly/examples/webapp
为例子
进入服务文件夹目录下。
cd skynet_fly/examples/webapp
构建运维脚本。
bash ../../binshell/make_server.sh ../../
之后会生成以下文件。
1 |
|
可以发现webapp_config.lua
的生成规则是这样的svr_name
.. _config.lua
,也就是服务文件夹的名字拼接起来的,在skynet_fly默认服务文件夹名为服务名称,这个服务名称在集群远程rpc中会用到。
- 运行服务。
make/script/run.sh 配置文件 是否守护进程(0 不启用 默认启用)bash make/script/run.sh load_mods_prod.lua 0
或者bash make/script/run.sh load_mods.lua 0
- 守护进程运行,后台运行,log会写在日志文件,目前日志文件默认放在
logs/server.log
下面。 - 非守护进程运行,ctrl + c 就会终止服务。
我们可以使用不同的配置文件来启动服务,这样可以方便的区分,正式环境,开发环境,测试环境不同的配置。
也可以方便部署单机多服,单机就能模拟多机部署。
比如以上的两种启动方式就相当于启动了两个服务。
- bash make/script/run.sh load_mods_prod.lua 用生成环境配置
- bash make/script/run.sh load_mods.lua 用测试环境配置
我们给指定的服务执行命令时,需要带上启动的配置文件名,因为当单机上部署多个相同服务时我们需要区分它们。
比如检查热更
- 正式环境 bash make/script/check_reload.sh load_mods_prod.lua
- 测试环境 bash make/script/check_reload.sh load_mods.lua
命令使用注意点
script中的脚本命令并不能在任意目录下执行。script中的shell命令,都默认当前路径的服务的根目录,所有必须在服务的根目录执行。
比如你cd 到script目录,执行相关命令就不行。
上面脚本有关于热更的命令,我们先不急着了解热更命令,我们先看看下一节,如何配置运行可热更服务。
构建服务脚手架
https://huahua132.github.io/2023/02/25/skynet_fly_word/word_1/D_creator/