部署问题
如何重新安装
-
停止可能已经运行中的 HAP 服务,在管理器根目录执行以下命令:(正常情况下停止成功输出 stoped);
bash ./service.sh stopall
rm -f ./installer.stage
-
备份 HAP 服务文件(具体备份目标位置可自定义,一般首次部署时不需要,可直接
rm -rf /data/mingdao/
);mv /data/mingdao/ /home/hapbak/
-
再次确认是否已清理干净,分别执行以下命令,确保输出结果都为空(不为空则将对应进程kill);
docker ps | grep mingdaoyun
netstat -ntpl | grep 38881
ps -ef | grep 'mingdaoyun\|service.sh' | grep -v grep
-
执行以下命令重启管理器,启动成功后访问
http://{服务器IP}:38881
再次安装bash ./service.sh start
初始化失败
首次部署页面提示初始化失败时,请到服务器上执行以下命令观察输出,通常终端中会输出异常信息,根据输出内容进一步判断问题。
bash ./service.sh restartall
如果有 iptables failed
关键字错误,通常是关闭 firewalld
时会清空 iptables
规则,所以需要重启 Docker 重新生成默认的 iptables
规则,然后再 重新安装
初始化完成后提示“账号已退出,请重新登录”

问题基本原因:服务器硬盘 IOPS 性能较低,服务启动过程中硬盘IO占满,导致存储组件服务启动缓慢。
解决方法:
在 /data/mingdao/script/docker-compose.yaml
配置文件中添加环境变量,延迟微服务启动时间。
环境变量添加后在安装管理器目录下执行 bash service.sh restartall
重启服务,待重启完成后再重新填写初始信息。
services:
app:
environment:
ENV_ROLE_MODE_WAITMS: "90000"
-
ENV_ROLE_MODE_WAITMS
环境变量值的单位是毫秒,默认值为30秒。 -
本示例中,将环境变量的默认值调大至90秒,让微服务延迟启动90秒,先保证存储组件进程在微服务启动前完成启动。
-
如果问题仍然无法解决,可以继续增加等待时间,例如180秒,然后重启服务进行测试。
-
此环境变量值调大会带来服务整体启动速度变慢的问题,更加建议将 HAP 服务部署在性能较高的硬盘之上,否则使用过程中可能会遇到性能问题,硬盘性能指标可参阅服务器基础性能要求。
如何配置开机自启动
实现方式:基于操作系统自带的 rc-local
服务,将 HAP 服务启动命令写入开机自启动脚本中实现 HAP 服务开机自启动。
以安装管理器所在路径为 /usr/local/MDPrivateDeployment/
为例,以下提供几种常见操作系统的配置方法供参考:
- CentOS
- Debian
- Ubuntu
编辑 /etc/rc.d/rc.local
文件,尾部追加 HAP 服务启动命令。
可直接通过下方命令在文件尾部追加 HAP 服务启动命令:
cat >> /etc/rc.d/rc.local << EOF
sleep 30
cd /usr/local/MDPrivateDeployment/ && /bin/bash ./service.sh restartall
EOF
- 为确保此文件具有可执行权限,请执行:
chmod +x /etc/rc.d/rc.local
Debian 默认没有启用 rc-local
服务,因此需要手动启用。可参考以下步骤进行操作:
-
检查
rc-local
服务状态systemctl status rc-local
- 如果 rc-local 服务已启用并正在运行,跳至步骤 4。
- 如果 rc-local 服务未启用,继续进行下一步。
-
创建
rc.local
初始文件并添加可执行权限echo '#!/bin/bash' > /etc/rc.local
chmod +x /etc/rc.local -
启动
rc.local
服务systemctl enable rc-local
systemctl start rc-local
systemctl status rc-local- 确保
rc-local
服务正常启动,以便在系统启动时自动执行相关命令。
- 确保
-
编辑
/etc/rc.local
文件,尾部追加 HAP 服务启动命令。可直接通过下方命令在文件尾部追加 HAP 服务启动命令:
cat >> /etc/rc.local << EOF
sleep 30
cd /usr/local/MDPrivateDeployment/ && /bin/bash ./service.sh restartall
EOF
Ubuntu 默认没有启用 rc-local
服务,因此需要手动启用。可参考以下步骤进行操作:
-
检查
rc-local
服务状态systemctl status rc-local
- 如果 rc-local 服务已启用并正在运行,跳至步骤 5。
- 如果 rc-local 服务未启用,继续进行下一步。
-
修改
/lib/systemd/system/rc-local.service
文件先备份
rc-local.service
文件cp /lib/systemd/system/rc-local.service /lib/systemd/system/rc-local.service.bak
随后修改
rc-local.service
文件,追加[Install]
段配置,定义rc-local.service
服务将在操作系统正常启动后跟随启动。可直接通过下方命令在文件尾部追加
[Install]
段配置cat >> /lib/systemd/system/rc-local.service << EOF
[Install]
WantedBy=multi-user.target
EOF -
创建
rc.local
初始文件并添加可执行权限echo '#!/bin/bash' > /etc/rc.local
chmod +x /etc/rc.local -
启动
rc.local
服务systemctl daemon-reload
systemctl enable rc-local
systemctl start rc-local
systemctl status rc-local- 确保
rc-local
服务正常启动,以便在系统启动时自动执行相关命令。
- 确保
-
编辑
/etc/rc.local
文件,尾部追加 HAP 服务启动命令。可直接通过下方命令在文件尾部追加 HAP 服务启动命令:
cat >> /etc/rc.local << EOF
sleep 30
cd /usr/local/MDPrivateDeployment/ && /bin/bash ./service.sh restartall
EOF
服务器重启后,HAP 服务无法正常启动
管理器根目录下执行分别执行以下命令,等待 startall 命令执行完成即可。如果未加入开机启动,参考 配置开机启动
bash ./service.sh stopall
rm -f service.pid
bash ./service.sh startall
密钥丢失,服务器Id 不显示
- 停止服务,管理器根目录下执行
bash ./service.sh stopall
; - 执行命令
ps -ef | grep 'mingdaoyun\|service.sh' | grep -v grep
(如果有输出,把对应 pid 全部 kill); - 执行
bash ./service.sh startall
,等待命令执行完成即可。
可能原因:
- 服务器资源饱和,导致管理器进程被强制终止
- 服务器时间不准确,导致密钥有效期判断错误
- 服务器重启,但管理器未设置开机自启
- 服务启停命令操作不规范,导致密钥周期性的有效状态识别失败