写点什么

长安链学习 - 启动脚本分析

作者:
  • 2022 年 8 月 20 日
    湖南
  • 本文字数:727 字

    阅读完需:约 2 分钟

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star


分析脚本启动过程,打开黑盒子。

  • 执行cluster_quick_start.sh脚本,会解压各个安装包,调用bin目录中的start.sh脚本,启动chainmaker节点

$ ./cluster_quick_start.sh normal
复制代码


这个脚本在 chainmaker-go 的 scirpts 目录下,找到对应的方法

function start_normal() {    cd $RELEASE_PATH    for file in `ls $RELEASE_PATH`    do        if [ -d $file ]; then            echo "START ==> " $RELEASE_PATH/$file            cd $file/bin && ./start.sh && cd - > /dev/null        fi    done}
复制代码


CURRENT_PATH=$(pwd)PROJECT_PATH=$(dirname "${CURRENT_PATH}")RELEASE_PATH=${PROJECT_PATH}/build/release
复制代码

可以看到进入到了 release 目录,并且遍历该下面子目录。

然后进入子目录下的 bin 目录, 并执行./start.sh 脚本


RELEASE_PATH 目录就是当前项目目录下面的 build/release

可以看到下面还有子目录,每个子目录下面的文件夹都是一样的

包含 bin 目录、config 目录、data 目录、lib 目录、log 目录


我们打开其中一个 bin 目录下的 start.sh

因为最终都是执行各个目录下的该脚本

判断 enable_dockervm 配置是否为 TRUE,该配置在对应 config 目录下的对应目录的 chainmaker.yml 里面

enable_dockervm
复制代码

默认是 false 的,所以不会调用 start_docker_vm 方法,会走下面的逻辑


下面的逻辑很简单:

nohup ./chainmaker start -c ../config/wx-org1.chainmaker.org/chainmaker.yml > panic.log 2>&1 &
复制代码

就是调用二进制文件 chainmaker 的 start 命令,并通过-c 传入配置文件


这样脚本启动思路就非常清晰了,不用脚本,我们也可以通过命令自己启动,只是说,我们自己要一个个去启动不同的节点

用户头像

关注

还未添加个人签名 2018.05.04 加入

还未添加个人简介

评论

发布
暂无评论
长安链学习-启动脚本分析_长安链_李_InfoQ写作社区