桌牌 - 端口被占用问题
桌牌上位机启动时需要监听两个端口:80(用于 Web 访问), 1883(用于 MQTT 协议)。当这些端口被其他进程占用时,会导致启动失败。本文将详细介绍如何在 Windows 和 Linux 系统中解决这些问题。
端口被占用的错误信息:
日志检查:查看安装目录下的 server/logs/table-card-server/all.log 文件,找到错误信息。
- 端口 80 被占用:
- 端口 1883 被占用:
附件说明
- check_port_process_win.bat: 用于 Windows 系统中查找并显示监听 80, 1883 端口的进程信息。
- kill_process_win.bat: 用于 Windows 系统帮助用户强制终止指定的进程 ID(PID).
- check_port_process_linux.bat: 用于 Linux 系统中查找并显示监听 80, 1883 端口的进程信息。
- kill_process_linux.bat: 用于 Linux 系统帮助用户强制终止指定的进程 ID(PID).
Windows 系统解决方案
1.查找并终止占用端口的进程:
-
以管理员身份运行批处理脚本:
- 使用 check_port_process_win.bat 脚本查询端口 80 ,1883 监听情况。如果出现中文乱码或"The system cannot write to the specified device",请参考批处理中文乱码解决方案。
- 使用 kill_process_win.bat 脚本强制终止特定 PID 的进程。在终止某个进程之前,最好确认该进程的作用和终止它可能带来的后果。
特别注意
- 如果发现占用 80 端口的是 System 进程(PID 为 4),请按照此教程操作,关闭相关的 IIS 服务。
2.重启桌牌上位机
- 运行桌牌上位机终止脚本 stop.bat(路径:安装目录/stop.bat)。
- 重新运行桌牌上位机程序。
解决 1883 端口被占用示例:
Linux 系统解决方案
1.查找并终止占用端口的进程:
- 以超级用户身份运行批处理脚本:
-
使用 check_port_process_linux.sh 脚本查询端口 80 ,1883 监听情况。
命令: sudo ./check_port_process_linux.sh
-
使用 kill_process_linux.sh 脚本强制终止特定 PID 的进程。在终止某个进程之前,最好确认该进程的作用和终止它可能带来的后果。
命令: sudo ./kill_process_linux.sh
-
2.重启桌牌上位机
-
运行桌牌上位机终止脚本 stop.sh(路径:安装目录/stop.sh)。
命令: sudo ./stop.sh
-
重新运行桌牌上位机程序。
解决 80 端口被占用示例: