obshell是什么作用?oceanbase的开机自启动

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】oceanbase-all-in-one-4.2.2.0
【问题描述】
单机安装的oceanbase服务想做开机自启动的,我用observer启动命令注册systemctl,发现用systemctl来管理启动时只有observer服务的2881、2882两个端口,没有obshell的2886端口的。但是用obd命令方式启动是会有obshell的2886端口的,我想想问问这个obshell有什么作用的吗?我用systemctl管理自启动需要开机自自动这个obshell的吗?

systemclt管理脚本如下:
[Unit]
Description=OceanBase Observer Service
After=network.target

[Service]
Type=forking
User=admin
Group=admin
LimitNOFILE=165535
LimitNPROC=165535
WorkingDirectory=/opt/oceanbase/observer
ExecStart=/opt/oceanbase/observer/bin/observer

[Install]
WantedBy=multi-user.target

obshell是新推出的命令工具,内容比较丰富,可以参看文档介绍。
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000749605

也是支持配置开机自启动的,配置方式参看。
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000762063

还是没有说清楚obshell的作用呐,链接就只有短短几行字的,也没有详细说明的

上面链接是obshell的功能介绍。
image

我看过了,就功能上短短几行字,我看不出obshell作用是什么的,有什么效果用于什么的,我到现在都不知道obshell是做什么的,连个示例说明都没有的

还有这个开机自启动脚本,我刚实验启动找不到observer.pid文件是怎么回事?启动不是要自己生成这个pid文件吗?我试过命令单独启动obshell没有问题也有生成observer.pid文件,就是开机自脚本生成的observer.services用systemctl命令启动不了,报错如下:

难道是我理解错了吗?

正如文档里面的概述所说 :OBShell(OceanBase Shell)是 OceanBase 社区为运维人员 & 开发人员提供的免安装、开箱即用的本地集群命令行工具,支持集群运维。同时基于 OBServer 节点对外提供运维管理的OpenAPI,从而方便第三方产品工具对接 OceanBase 数据库(通过 OBShell 提供的 API)。
另外,我们还提供了相关的 sdk,例如OBShell-SDK-GO(已开源),OBShell-SDK-Python也正在开发中,第三方工具或者用户可以通过使用 SDK 方便地通过 OBShell 对 OceanBase 集群进行部署、运维等操作。
关于 OBShell 的示例说明可以参考“使用场景”等文档。目前更推荐使用 OBShell 命令行,API 访问会稍显复杂。在后续 SDK 统一发布后,我们也会立即更新文档,介绍如果通过 SDK 使用 OBShell 对 OceanBase 集群进行运维管理。

我理解下现状是

  1. 使用obd安装了一个单节点的OB
  2. 自己写了一个Service文件
  3. 使用 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000762063 这篇文章又安装了一个Service文件
  4. 老的Service没有卸载,执行新安装的Service报错了?

1、我的环境是单机安装的oceanbase库
2、没有自己写services脚本,就是拿你们官方提供文章里的services脚本直接使用的,按文章里步骤操作的才报错的找不到脚本里指定的pid文件的。我测试用{home_path}/bin/obshell admin start命令启动obshell是能生成observer.pid文件并找到的

好的,谢谢