将多个厂商的许可证合并到一台服务器上,主要有两种方法:合并成一个许可证文件和保持独立文件但分开管理。选择哪种方法,首先取决于许可证文件是否“兼容”。
📋 第一步:检查兼容性,决定采用哪种方案
在动手之前,需要先确认一个最关键的前提条件:不同厂商的许可证文件是否“兼容”。
- 兼容:指所有许可证文件中的SERVER行使用相同类型的主机ID(Host ID),例如都是MAC地址,或都是COMPOSITE(复合ID)。
- 不兼容:指一个文件用MAC地址,另一个用COMPOSITE或硬盘序列号。
基于兼容性的决策树:
- 如果兼容:可以采用方案一:合并成一个文件。这是最简洁、管理成本最低的方式。
- 如果不兼容:则必须采用方案二:保持独立文件,分开管理。强行合并会导致服务启动失败。
⚙️ 第二步:根据兼容性,选择对应方案
方案一:合并成一个许可证文件(仅限兼容文件)
这种方法最为推荐,所有厂商的许可证都由同一个lmgrd进程管理。

操作步骤如下:
- 准备文件:在服务器上新建一个空的文本文件,例如 C:\flexlm\combined.lic(Windows)或 /opt/flexlm/combined.lic(Linux)。注意:路径和文件名不要包含中文或空格。
- 合并SERVER和VENDOR行:打开厂商A的许可证文件,复制其第一行SERVER ...,粘贴到新文件的首行。打开厂商B的许可证文件,复制其VENDOR ...(或DAEMON ...)行。如果原文件是DAEMON,建议统一改为VENDOR。将其粘贴到新文件的第二行。核心原则:合并后的文件只能有一个SERVER行,且必须在第一行。所有其他厂商的VENDOR行紧随其后。
- 合并授权行:将厂商A和厂商B许可证文件中,VENDOR行之后的所有内容(FEATURE和INCREMENT行)全部复制,粘贴到新文件的末尾。注意IBM等厂商2010年后的许可证可能只有INCREMENT行。
- 保存并配置:保存合并后的文件。然后在LMTOOLS中,将Path to the license file指向这个新文件。
- 重启服务:保存配置后,必须完全停止并重新启动lmgrd服务,不能使用ReRead。
方案二:保持独立文件,分开管理
当文件不兼容时,可以为每个厂商的许可证文件运行一个独立的lmgrd进程。
操作步骤如下:
- 修改端口:确保每个许可证文件的SERVER行使用不同的端口号。例如,厂商A用27000,厂商B用27001。
- 创建独立服务:在LMTOOLS的Config Services选项卡中,为每个许可证文件创建一个独立的服务。每个服务需指定唯一的Service Name,并分别指向各自的lmgrd.exe、许可证文件和日志文件。
- 分别管理:每个服务都需要单独启动、停止或配置。
⚠️ 关键注意事项与避坑指南
- lmgrd版本选择:如果合并多个文件,建议使用最新的lmgrd,因为它通常能兼容较旧的Vendor Daemon。如果分开管理,每个服务可以用其对应的lmgrd。
- 客户端配置:合并方案:客户端只需指向合并后的统一端口,如27000@server。独立方案:客户端需指向所有端口,如27000@server:27001@server。
- 避免路径冲突:确保不同服务的日志文件路径也不同,以免写入冲突。
- 备份原始文件:操作前务必备份所有原始许可证文件。
- 咨询厂商:合并前,最好向相关厂商确认是否存在已知的兼容性问题。
🔧 常见问题排查
- 服务启动失败:检查debug.log日志。常见原因包括端口冲突、文件格式错误或SERVER行不唯一。
- 客户端无法获取许可:检查客户端的环境变量配置是否正确,以及防火墙是否开放了所有相关端口。
- 部分Feature失效:检查合并后的VENDOR行路径是否正确,以及FEATURE/INCREMENT行是否完整复制。
总的来说,优先检查兼容性,能合并则合并,不能合并则分服务管理。这是将多个厂商许可证整合到同一台服务器上的核心原则。