许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  RLM启动时报“rlmd: can't open license file”,如何排查

RLM启动时报“rlmd: can't open license file”,如何排查

阅读数 6
点赞 0
article_banner

在Windows环境下使用LMTOOLS配置FlexNet许可证服务器时,最令人头疼的问题莫过于:服务配置好了,点击Start Server,显示启动成功,但几秒钟后服务又自动停止了。 或者更隐蔽的情况——LMTOOLS界面显示服务正在运行,但客户端就是连不上。

这篇文章从根本原因出发,提供一套完整的排查方法。


一、先确认问题现象

LMTOOLS中配置Windows服务时,常见的问题现象包括以下几种:

  • 现象A:点击"Start Server"后,状态栏短暂显示"Starting server...",随后变为空白或"Server Stopped"
  • 现象B:LMTOOLS显示"Server Start Successful.",但用lmstat查询不到服务,或客户端报-15错误
  • 现象C:服务在Windows服务管理器中显示为"正在运行",但lmgrd.exe进程不存在,或vendor daemon进程不存在
  • 现象D:点击"Start Server"后没有任何反应,状态栏不更新
  • 现象E:服务能启动,但每隔几分钟或几小时自动停止

二、最重要的一步:先看日志

不要反复重启服务而不看日志。

debug.log是定位问题的第一手资料。默认情况下,日志文件路径在LMTOOLS的"Config Services"标签页中配置。

打开debug.log,查看最后几行。常见的日志错误和对应原因如下:


日志内容问题类型
(lmgrd) Failed to open the TCP port number in the license.端口被占用
(lmgrd) Can't make directory /usr/tmp/.flexlm临时目录权限不足
(lmgrd) Cannot find lmgrd or license file路径不正确
(vendor) exited with status 53缺少VC++运行库
(vendor) exited with status 28端口冲突或权限不足
(lmgrd) The license file(s) and/or lmgrd were not foundlmgrd路径配置错误

三、根本原因详解

原因1:服务未以"本地系统账户"运行(最常见)

这是新版LMTOOLS(11.16及以上)最常见的问题。LMTOOLS在创建Windows服务时,默认将服务配置为 "本地服务账户"(Local Service Account) 运行。该账户权限较低,无法正常启动vendor daemon或写入日志。

排查方法

  1. 按Win+R,输入services.msc,打开Windows服务管理器
  2. 找到你配置的FlexNet服务(通常以"FlexNet License Server"或类似名称开头)
  3. 右键 → 属性 → 查看"登录"选项卡

如果显示为 "本地服务账户""Network Service" ,这很可能是问题根源。

解决方法

  1. 在服务属性中,将"登录"身份改为 "本地系统账户"
  2. 点击"应用"
  3. 切换到"常规"选项卡,点击"启动"

修改后,服务就能以系统最高权限运行,解决大多数权限相关问题。

原因2:路径中包含中文、空格或特殊字符

FlexNet对路径中的字符比较敏感。如果lmgrd、许可证文件或日志文件所在的路径包含中文、空格、括号等特殊字符,服务可能无法正常启动。

常见错误路径示例

  • C:\Program Files (x86)\FlexNet\(包含空格和括号)
  • D:\软件许可\license.lic(包含中文)
  • C:\FlexNet\license - 副本.lic(包含空格和中文)

解决方法

将lmgrd、许可证文件和日志目录全部放在不含空格、不含中文、不含特殊符号的路径下。建议使用类似以下结构:

text

C:\flexnet\lmgrd.exe
C:\flexnet\license.lic
C:\flexnet\logs\debug.log

原因3:端口被占用

FlexNet默认使用27000端口作为lmgrd的主端口,vendor daemon使用动态端口。如果27000端口被其他进程占用,lmgrd无法启动。

排查方法

在命令行中执行:

text

netstat -ano | findstr 27000

如果输出结果显示该端口被其他进程(PID)占用,说明端口冲突。

解决方法

  1. 终止占用端口的进程,或
  2. 在license文件的SERVER行末尾指定其他端口:textSERVER hostname MAC 27001
  3. 同时在VENDOR行固定vendor daemon端口:textVENDOR vendor_name PORT=27002

原因4:日志目录不存在或无写入权限

lmgrd启动时需要写入debug.log。如果日志目录不存在,或运行服务的账户对该目录没有写入权限,服务会启动失败。

排查方法

  • 检查LMTOOLS中"Config Services"标签页下"Path to the debug log file"指定的路径
  • 确认该目录是否存在
  • 确认该目录是否有写入权限

解决方法

  1. 如果目录不存在,手动创建
  2. 右键日志目录 → 属性 → 安全 → 编辑 → 添加"SYSTEM"和"Administrators"的完全控制权限
  3. 或直接使用C:\flexnet\logs\这类路径,并赋予Everyone写入权限(测试用)

原因5:lmgrd路径或许可证文件路径不正确

LMTOOLS中"Path to the lmgrd.exe file"和"Path to the license file"必须指向正确的文件。

排查方法

  • 打开文件资源管理器,确认lmgrd.exe确实存在于指定路径
  • 确认license.lic确实存在于指定路径
  • 确认文件没有损坏(用记事本打开看是否乱码)

特殊注意:不同软件的FlexNet包中,lmgrd的版本和位置可能不同。例如Synopsys SCL的lmgrd在/scl/linux64/bin/下,而某些软件厂商的lmgrd直接放在安装根目录的bin/下。不要混用不同厂商的lmgrd——用某个软件包自带的lmgrd去启动另一个软件的许可证,可能导致vendor daemon无法正常工作。

解决方法

点击LMTOOLS中"Config Services"标签页的"Browse"按钮,重新选择正确的文件路径。

原因6:残留进程冲突

上一次未正常关闭的lmgrd或vendor daemon进程仍然在运行,占用了端口或锁文件。

排查方法

在任务管理器中查看是否有lmgrd.exe或vendor daemon(如adskflex.exesnpslmd.exe等)进程在运行。如果存在非当前服务的lmgrd进程,说明有残留。

解决方法

  1. 在任务管理器中手动终止所有lmgrd.exe和vendor daemon进程
  2. 或在命令行中执行:texttaskkill /f /im lmgrd.exe taskkill /f /im adskflex.exe(将adskflex替换为实际的vendor daemon名称)
  3. 重新启动服务

原因7:依赖库缺失

FlexNet 11.16及以上版本依赖 Microsoft Visual C++ 2015-2022 Redistributable。如果系统中缺少该运行库,lmgrd或vendor daemon启动时会立即退出,日志中可能出现类似exited with status 53的错误。

解决方法

从微软官方网站下载并安装"Visual C++ Redistributable for Visual Studio 2015-2022"(x64和x86版本都安装)。

原因8:杀毒软件/安全软件拦截

某些安全软件会将lmgrd.exe或vendor daemon识别为潜在威胁并阻止其运行,或阻止其写入日志文件。

排查方法

  • 临时禁用杀毒软件,测试服务能否正常启动
  • 查看杀毒软件的隔离区/拦截日志

解决方法

将lmgrd.exe、vendor daemon.exe以及整个FlexNet安装目录加入杀毒软件的白名单/排除列表。

原因9:Windows事件日志中的线索

如果以上方法都无法解决问题,可以在Windows事件日志中查找线索。

查看方法

  1. 按Win+R,输入eventvwr.msc,打开事件查看器
  2. 展开"Windows日志" → "应用程序"
  3. 在右侧筛选"来源"为"Application Error"或".NET Runtime"的事件
  4. 查看错误事件中提到的故障模块名称和异常代码

常见的异常代码:

  • 0xc0000135:缺少DLL依赖
  • 0xc0000005:内存访问冲突
  • 0xc0000409:栈溢出

原因10:注册表残留

卸载或重新安装FlexNet服务时,如果未完全清理注册表,可能导致新服务配置与旧注册表项冲突。

解决方法

  1. 在LMTOOLS的"Start/Stop/Reread"标签页中,点击"Stop Server"停止服务
  2. 切换到"Config Services",点击"Remove Service"移除服务
  3. 在"Start/Stop/Reread"中再次点击"Stop Server"
  4. 重新配置服务

四、完整的重新配置流程

当服务无法正常启动时,最可靠的方法是完全删除并重新配置:

第1步:清理所有进程

在任务管理器中终止所有lmgrd.exe和vendor daemon进程。

第2步:删除现有服务

在LMTOOLS的"Config Services"中:

  1. 选择当前配置的服务名称
  2. 取消勾选"Use Services"
  3. 点击"Remove Service"

第3步:检查并清理注册表(可选)

按Win+R,输入regedit,导航至:

text

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\FlexLM License Manager

如果有该服务的残留键值,删除。

第4步:重新配置服务

在LMTOOLS的"Config Services"中:

  1. Service Name:输入一个有意义的名称(如"FlexNet_ANSYS")
  2. Path to lmgrd.exe:浏览选择正确的lmgrd.exe
  3. Path to license file:浏览选择正确的license.lic
  4. Path to debug log file:指定一个可写的日志路径(如C:\flexnet\logs\debug.log)
  5. 勾选"Use Services"
  6. 勾选"Start Server at Power Up"(如需开机自启)
  7. 点击"Save Service"

第5步:修改服务登录账户

  1. 按Win+R,输入services.msc
  2. 找到刚创建的服务
  3. 右键 → 属性 → 登录选项卡
  4. 选择 "本地系统账户"
  5. 点击"应用"

第6步:启动服务

  1. 回到LMTOOLS的"Start/Stop/Reread"标签页
  2. 点击"Start Server"
  3. 查看状态栏是否显示"Server Start Successful."
  4. 切换到"Server Status"标签页,点击"Perform Status Enquiry",检查是否能正常输出许可证信息

五、排查速查表


步骤检查内容方法优先级
1查看debug.log打开日志,查看最后几行错误信息🔴 最高
2检查服务登录账户services.msc → 属性 → 登录 → 改为"本地系统账户"🔴 高
3检查路径中是否含中文/空格确认路径纯英文、无空格、无特殊字符🔴 高
4检查端口是否被占用netstat -ano | findstr 27000🔴 高
5检查日志目录权限确认目录存在且可写🟡 中
6检查lmgrd和license路径确认文件存在且路径正确🟡 中
7清理残留进程任务管理器终止所有lmgrd.exe🟡 中
8检查杀毒软件临时禁用或将FlexNet目录加入白名单🟡 中
9安装VC++运行库安装Visual C++ Redistributable 2015-2022🟢 低
10查看Windows事件日志eventvwr.msc → 应用程序日志🟢 低

六、最后的提醒

最重要的原则:先看debug.log。 日志里的错误信息直接告诉你问题在哪,绝大多数情况下不需要盲目尝试各种"偏方"。

如果debug.log没有生成,说明lmgrd连写入日志的权限都没有——通常是路径权限问题或服务账户权限问题。

如果debug.log生成了但内容为空,说明lmgrd启动了但立即退出——通常是依赖库缺失或端口冲突。

按照上述排查顺序逐一检查,大多数LMTOOLS服务问题能在30分钟内解决。


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空