跳到主要内容

start.sh说明

start.sh 用于编译、复制、启动、停止和查看 shoptnt 后端服务。脚本建议放在 shoptnt 源码根目录下执行。

一、使用前准备

源码和配置中心建议按以下目录放置:

/opt/source
├── shoptnt
│ └── start.sh
└── config
├── application.yml
└── application-dev.yml

如果使用默认配置,脚本会自动查找 /opt/source/shoptnt/../config,也就是 /opt/source/config

启动前需要先修改配置中心文件:

cd /opt/source/config
vim application-dev.yml

请根据实际环境配置 MySQL、Redis、Elasticsearch、RabbitMQ 等连接信息。

二、首次部署

进入源码目录:

cd /opt/source/shoptnt

执行安装启动命令:

bash start.sh

该命令会完成以下操作:

  1. 使用 Maven 编译源码。
  2. 将各服务 JAR 包复制到 /opt/server
  3. 启动本机 Config Server。
  4. 依次启动后端服务。
  5. 检查每个服务端口是否启动成功。

脚本默认运行目录是 /opt/server,如果不传 --server-dir,JAR 包和日志都会放在这里。

默认情况下,脚本会按以下配置执行:

配置项默认值
启动动作install
配置目录源码同级 config 目录,例如 /opt/source/config
运行目录/opt/server
配置环境dev
Config Server 地址http://127.0.0.1:8888

只有需要修改默认目录、环境或配置中心地址时,才需要额外传入参数,例如:

bash start.sh install --config-dir /opt/source/config --server-dir /opt/server --profile dev

三、常用命令

1. 编译并启动全部服务

bash start.sh
# 或
bash start.sh install

适合首次部署,或者代码更新后重新编译部署。

2. 跳过 Maven 编译

bash start.sh install --skip-build

适合源码已经编译过,只需要重新复制 target 目录中的 JAR 并启动服务。

3. 只启动已部署的 JAR

bash start.sh start

适合服务器重启后,直接使用 /opt/server 中已有的 JAR 启动服务。

4. 停止全部服务

bash start.sh stop

5. 停止指定服务

bash start.sh stop buyer-api

6. 重启全部服务

bash start.sh restart

7. 重启指定服务

bash start.sh restart buyer-api

8. 查看运行状态

bash start.sh status

9. 查看服务日志

bash start.sh logs buyer-api

四、服务名和端口

服务名默认端口说明
config-server8888配置中心
base-api7001基础接口
buyer-api7002买家端接口
seller-api7003商家端接口
manager-api7004管理端接口
consumer6000消费者服务
sba-server7006Spring Boot Admin

停止、重启、查看日志时,服务名必须使用上表中的名称。

五、参数说明

参数默认值说明
--config-dir自动查找源码同级 config 目录指定配置中心目录,例如 /opt/source/config
--server-dir/opt/server指定 JAR 和日志的运行目录
--profiledev指定配置环境,对应 application-dev.yml
--version8.0指定运行 JAR 的版本名称
--labelmaster指定配置中心 label
--config-urihttp://127.0.0.1:8888指定 Config Server 地址
--without-config-server不启用不启动本机 Config Server,改用外部 Config Server
--skip-build不启用install 时跳过 Maven 编译

如果部署的不是 dev 环境,例如使用 prod 环境,需要确保配置目录中存在对应文件:

/opt/source/config/application-prod.yml

启动命令示例:

bash start.sh install --profile prod --config-dir /opt/source/config

六、使用外部 Config Server

如果 Config Server 不在当前服务器启动,需要加上 --without-config-server,并指定外部 Config Server 地址:

bash start.sh install \
--without-config-server \
--config-uri http://10.0.0.11:8888

脚本会通过 --config-uri 检查配置中心是否可访问,然后再启动各 API 服务。

七、日志目录

默认日志目录:

/opt/server/logs

常见日志文件:

/opt/server/logs/config-server.log
/opt/server/logs/base-api.log
/opt/server/logs/buyer-api.log
/opt/server/logs/seller-api.log
/opt/server/logs/manager-api.log
/opt/server/logs/consumer.log
/opt/server/logs/sba-server.log

如果启动失败,优先查看对应服务日志:

bash start.sh logs manager-api

八、常见问题

1. 提示没有找到配置项目

检查 /opt/source/config 是否存在,并确认包含以下文件:

application.yml
application-dev.yml

也可以启动时手动指定配置目录:

bash start.sh install --config-dir /opt/source/config

2. Config Server 启动超时

先查看配置中心日志:

bash start.sh logs config-server

重点检查配置文件格式、配置目录路径、端口 8888 是否被占用。

3. 服务启动超时

查看对应服务日志,例如:

bash start.sh logs buyer-api

重点检查 MySQL、Redis、Elasticsearch、RabbitMQ 等中间件地址是否正确。

4. 修改过运行目录后,状态或日志查不到

statusstoprestartlogs 默认读取 /opt/server。如果启动时使用了自定义运行目录,后续命令需要带上环境变量:

SERVER_DIR=/data/shoptnt/server bash start.sh status
SERVER_DIR=/data/shoptnt/server bash start.sh logs buyer-api