Skip to Content
本页目录

Linux 部署

本页以使用 systemd 的 Debian / Ubuntu 主机为例。Watchdog 与 TGateway 安装在同一台现场主机;其他发行版按其运行时依赖和服务管理方式调整。

准备运行目录

  1. 运行 uname -m:x86_64 选择 x64,aarch64 选择 ARM64。在下载中心选择匹配架构的 Watchdog 包。
  2. 安装该发行版和架构对应的 .NET 10 Runtime,运行 dotnet --list-runtimes,确认存在 Microsoft.NETCore.App 10.x。
  3. 将完整发布包解压到固定目录,例如 /opt/tgateway/WatchDog,保留 appsettings.json、GatewayApp 和所有依赖。

最低 512 MB 内存、建议 1 GB 以上,存储 8 GB 以上;实际历史与缓存保留还需额外空间,见环境准备。

准备一个专用运行账号。已有账号时使用现有账号,不要重复创建;以下示例使用 tgateway:

sudo useradd --system --no-create-home --shell /usr/sbin/nologin tgateway sudo chown -R tgateway:tgateway /opt/tgateway/WatchDog sudo chmod +x /opt/tgateway/WatchDog/TGateway.Watchdog sudo chmod +x /opt/tgateway/WatchDog/GatewayApp/TGateway

后续命令中的账号和路径应与实际安装一致。账号需要对运行目录及工程数据有读写权限。

前台启动

先不安装服务,在终端运行:

cd /opt/tgateway/WatchDog sudo -u tgateway ./TGateway.Watchdog

保持终端运行。在部署主机打开 http://localhost:6200,确认 Watchdog 仪表盘中 TGateway 已运行,再打开 http://localhost:6100。远程浏览器使用主机实际 IP。登录和工作区核对见启动与首次登录。

若程序立即退出,先读取终端中的完整错误。不要先配置自动重启来掩盖缺少运行环境、权限或端口冲突。

配置 systemd 服务

前台验证成功后按 Ctrl+C,等待 Watchdog 和它管理的网关退出。使用管理员权限创建 /etc/systemd/system/tgateway-watchdog.service:

[Unit] Description=TGateway Watchdog Wants=network-online.target After=network-online.target [Service] Type=simple User=tgateway Group=tgateway WorkingDirectory=/opt/tgateway/WatchDog ExecStart=/opt/tgateway/WatchDog/TGateway.Watchdog Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target

User 和 Group 必须已存在;工作目录和执行路径必须与发布目录一致。启动并设置开机运行:

sudo systemctl daemon-reload sudo systemctl enable --now tgateway-watchdog sudo systemctl status tgateway-watchdog --no-pager

确认状态为 active (running),再检查 Watchdog 和 Runtime 页面。网关可能需要初始化时间,继续核对 Watchdog 日志和当前工程。

日志与服务操作

sudo journalctl -u tgateway-watchdog -n 100 --no-pager sudo systemctl stop tgateway-watchdog sudo systemctl start tgateway-watchdog

Watchdog 默认文件日志在 /opt/tgateway/WatchDog/Logs/Watchdog/;网关默认进程日志在 GatewayApp/Logs/XTrace/,以实际日志配置为准。查看系统日志可进一步定位设备、规则和转发错误。

停用并卸载服务时,先完成停机与备份:

sudo systemctl disable --now tgateway-watchdog

随后由管理员删除该服务的 unit 文件,再运行 sudo systemctl daemon-reload。停用服务不会删除安装目录和项目。

串口和网络权限

  • 串口采集先用 ls -l /dev/ttyUSB0 等命令检查实际设备节点与所属组。在 Debian / Ubuntu 上通常通过 sudo usermod -aG dialout tgateway 授权;以设备的实际所属组为准,重启服务后生效。
  • 不要用永久开放所有用户读写权限代替账号授权。USB 串口节点变化时,更新通道配置或由管理员配置稳定的设备路径。
  • Web 可访问后,再检查设备 IP、协议端口和监听方向。服务端插件使用低于 1024 的端口时,按主机策略配置低位端口权限,不要为解决一个端口问题默认把整个服务改为 root。
  • 日志、历史、离线缓存和外部挂载目录都必须允许服务账号读写。以交互账号启动成功,不能证明 systemd 账号也有权限。

更新与恢复

网关程序可通过 Studio 批量更新。更新 Watchdog 宿主或移动目录前,先在 Watchdog 备份管理创建并下载备份。

在维护窗口停止 systemd 服务,为已停止的整个安装目录保留副本,包括配置、GatewayApp、CurrentProject、Projects 与 Backups。按发布说明更新程序,保留现场数据,并重新确认文件所属账号和执行权限。路径改变时同步修改 unit,运行 daemon-reload 后再启动。

恢复后依次确认服务状态、版本、当前工程、已知变量的新采样及接收端新数据。不要在运行中只复制 SQLite 主文件,或删除仍在使用的 WAL 和补传缓存。

常见启动问题

现象检查与恢复
Permission denied核对执行位、目录权限及服务账号;串口还需检查设备组
Exec format error核对发布包是否与主机架构一致
缺少运行时或共享库安装对应发行版的 .NET 10 Runtime 及其系统依赖
systemd 启动后退出看 journal 与文件日志,再以相同账号前台启动
本机成功、远程失败核对主机 IP、监听地址、防火墙与代理

没有真实设备时,继续用内置仿真器采集第一个点。其他故障见故障排查。