我在让XPA看到由IDL "spawn“命令启动的程序时遇到了问题。我正在尝试启动ds9,然后通过IDL保存一个区域文件。如果我从终端窗口打开ds9窗口,我可以在IDL中很好地连接XPA。但是,如果我通过IDL启动ds9,我会得到错误"XPA$ERROR no 'xpaget‘access point match template: xpans“。
我错过了什么把戏?
发布于 2014-08-29 23:08:51
XPA使用名为“xpans”的名称服务器程序将XPA目标名称(在本例中为“ds9”)映射到XPA通信中使用的主机/套接字对。该名称服务器可以在命令行中手动启动,但是支持XPA的服务器(如DS9 )将尝试自动启动xpans (如果尚未运行)。为此,DS9的路径中必须有xpans。因此,对您的问题最简单的解释是,xpans位于您的外壳路径中,该路径在终端窗口中传递给DS9,但不在从IDL传递给DS9的IDL路径中。您可以通过在每种情况下启动DS9,选择文件->XPA-信息,鼠标移出XPA_METHOD值并运行:
xpaget [xpa-method] -env PATH这将直接联系DS9 (绕过名称服务器),并告诉您DS9在每种情况下的路径。在每种情况下,您还可以在启动DS9之前和之后执行'ps‘,并检查xpans程序...
第二种可能的解释是IDL确实为DS9提供了正确的路径,但不允许DS9启动xpans,即,在执行进程(DS9)是否可以执行子进程(xpans)方面可能存在IDL限制。如果是这种情况,您将不得不手动启动xpans。
https://stackoverflow.com/questions/19460344
复制相似问题