对于 Windows
*****************
如果 mlm.exe 进程未能在许可证管理器上启动,通常会发生此错误。如果此计算机上运行的另一种产品的另一个许可证管理器正在使用 MATLAB 许可证服务器想要使用的那个端口,通常会发生这种情况。要解决此问题,可以采取以下步骤:
1.在记事本中打开 $MATLAB\etc(对于 2010b 之前的版本,则为$MATLAB\flexlm)中的 license.dat 文件。这里, $MATLAB 是计算机上的安装文件夹。
2.在该许可证文件中,找到以 SERVER 开头以 27000 结束的那一行。将 27000(端口号)改为另一个端口号,如 27010。
3.打开 $MATLAB\etc\win{32|64}(对于 2010b 之前的版本,则为 $MATLAB\flexlm)中的 lmtools.exe。
4.如果 MATLAB License Server 未高亮显示,则点击选中它
5.转至“启动”(Start)/“停止”(Stop)/“重新读取”(Reread) 选项卡。
6.选中“强制服务器关闭”(Force Server Shutdown) 框,然后点击“停止服务器”(Stop Server)
7.一旦底部的状态栏显示Stopping Server,则点击“启动服务器”(Start Server) 来重新启动服务器。
这将立刻启动许可证管理器。要确认它已经启动,请转到“服务器状态”(Server Status) 选项卡并点击“执行状态查询”(Perform Status Inquiry)。如果许可证管理器已启动,您应看到许可证服务器状态为“启动”(Up),守护程序的状态也为“启动”(Up)。例如:
--------
状态
--------
Flexible License Manager status on Tue 7/22/2008 08:42
[Detecting lmgrd processes]
License server status: 27010@license-server1
License file(s) on license-server1: C:\MATLAB\R2008a\flexlm\license.dat:
license-server1: license server UP (MASTER) v11.4
Vendor daemon status (on license-server1):
MLM: UP v11.4
Feature usage info:
Users of MATLAB (total of X licenses issued, 0 in use)
如果您看到许可证服务器为“启动”(UP),表明它已启动。此时,您需要告知MATLAB 查看任何已安装 MATLAB 客户端的计算机的更新的端口号。为此,您需要更新该客户端的许可证文件。此文件是下列任一项:
$MATLAB\licenses\network.lic(对于 R2008a)
$MATLAB\bin\win{32|64}\license.dat(对于 Windows 中 R2008a 之前的版本)
$MATLAB/etc/license.dat(对于 Unix/Linux/Mac 中 R2008a 之前的版本)
更新之后,该客户端应当能够获得许可证。
如果许可证管理器仍然失败,或者该客户端仍然无法访问许可证,请联系安装和许可支持:
联系时请务必发送来自许可证管理器 $MATLAB/flexlm 或etc 目录中的 license.dat 和 lmlog.txt 文件。
对于 UNIX/Linux 或 Mac
*****************************
当 /var/tmp 中存在 lockMLM 文件,或者启动许可证管理器的用户在 /var/tmp 中未拥有 lm_TMW 文件,就会发生此错误。要解决此问题,请从 /var/tmp 中删除 lockMLM 文件和 lm_TMW 文件。删除这些文件后,请尝试启动许可证管理器。
如果仍然收到同样的错误消息,问题可能出在现有许可证管理器或供应商守护程序进程上。$MATLAB/etc/lmdown 脚本关闭了运行的 lmgrd 和 MLM 进程。有时,lmdown 脚本在任务中会失败。关闭许可证管理器守护程序最有效的办法是按照以下方式使用 UNIX“kill”命令:
首先,您需要确定许可证守护程序是否正在运行。
根据您的系统情况,使用以下命令之一。
ps -ef | grep lm
或
ps agx | grep lm
检查输出,看看有无任何与 MATLAB 关联的 lmgrd 和“lm”或“mlm”正在运行。如果有,通过为每个进程执行(可能需要根用户权限)以下命令来手动终止所有守护程序。
kill <守护程序的进程 ID>
然后,运行 $MATLAB/etc/lmstart 重新启动守护程序。
如果此时错误仍然存在,那么也可能是供应商守护程序正试图在被占用端口上运行。要为供应商守护程序指定一个打开的端口,请编辑 $MATLAB/etc 目录下的 license.dat 文件中的 DAEMON 行,在其中包含 port=##### 选项(##### 是一个打开的端口)。端口号最好避开 27000 到 27009 范围(即最好在 1700-1711 范围内)。例如:
DAEMON MLM $MATLAB/etc/MLM port=1711
(注意:在 R2011a 之前,Linux/Mac 上的 DAEMON 行为“$MATLAB/etc/lm_matlab”)
完成此编辑后,重新启动计算机并启动许可证管理器。
有关查找打开的端口的详细信息,请参阅下面列出的相关解决方案。