我在使用IDL“spawn”命令启动程序时遇到问题,XPA会看到它。我正在尝试启动ds9,然后通过IDL保存区域文件。如果我从终端窗口打开ds9窗口,我可以在IDL中与XPA连接。但是,如果我通过IDL启动ds9,我会收到错误“XPA $ ERROR no'xpaget'访问点匹配模板:xpans”。
我错过了什么诀窍?
答案 0 :(得分:0)
XPA使用名为“xpans”的名称服务器程序将XPA目标名称(在本例中为“ds9”)映射到XPA通信中使用的主机/套接字对。此名称服务器可以在命令行中手动启动,但启用XPA的服务器(如DS9)将尝试自动启动xpans(如果尚未运行)。为此,DS9必须在其路径中包含xpans。因此,对您的问题最简单的解释是xpans位于您的shell路径中,该路径在终端窗口中传递给DS9,但不在您从IDL传递到DS9的IDL路径中。你可以通过在每种情况下启动DS9来检查这一点,选择File-> XPA-Information,mousing out XPA_METHOD值并运行:
xpaget [xpa-method] -env PATH
这将直接联系DS9(绕过名称服务器),并告诉您DS9在每种情况下的路径。您也可以在每种情况下启动DS9之前和之后执行'ps',并检查xpans程序...
第二种可能的解释是IDL确实给DS9正确的路径,但是不允许DS9启动xpans,即对于exec'ed进程(DS9)是否可以执行子进程可能存在IDL限制(xpans)。如果是这种情况,则必须手动启动xpans。