本页目录
Linux 部署
本页以使用 systemd 的 Debian / Ubuntu 主机为例。Watchdog 与 TGateway 安装在同一台现场主机;其他发行版按其运行时依赖和服务管理方式调整。
准备运行目录
- 运行
uname -m:x86_64选择 x64,aarch64选择 ARM64。在下载中心选择匹配架构的 Watchdog 包。 - 安装该发行版和架构对应的 .NET 10 Runtime,运行
dotnet --list-runtimes,确认存在Microsoft.NETCore.App 10.x。 - 将完整发布包解压到固定目录,例如
/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.targetUser 和 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-watchdogWatchdog 默认文件日志在 /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、监听地址、防火墙与代理 |
没有真实设备时,继续用内置仿真器采集第一个点。其他故障见故障排查。