1

我在让 XPA 看到由 IDL“spawn”命令启动的程序时遇到问题。我正在尝试启动 ds9,然后通过 IDL 保存区域文件。如果我从终端窗口打开 ds9 窗口,我可以在 IDL 中很好地连接 XPA。但是,如果我通过 IDL 启动 ds9,我会收到错误“XPA$ERROR no 'xpaget' access points match template: xpans”。

我错过了什么技巧?

4

1 回答 1

0

XPA 使用名为“xpans”的名称服务器程序将 XPA 目标名称(在本例中为“ds9”)映射到 XPA 通信中使用的主机/套接字对。该名称服务器可以在命令行中手动启动,但如果 xpans 尚未运行,则启用 XPA 的服务器(例如 DS9)将尝试自动启动 xpans。为此,DS9 的路径中必须有 xpan。因此,对您的问题最简单的解释是 xpans 在您的 shell 路径中,该路径在终端窗口中传递给 DS9,但不在从 IDL 传递给 DS9 的 IDL 路径中。您可以通过在每种情况下启动 DS9 来检查这一点,选择 File->XPA-Information,鼠标移出 XPA_METHOD 值并运行:

xpaget [xpa-method] -env PATH

这将直接联系 DS9(绕过名称服务器)并告诉您 DS9 在每种情况下的路径。您还可以在每种情况下启动 DS9 之前和之后执行“ps”,并检查 xpans 程序...

第二种可能的解释是 IDL 确实为 DS9 提供了正确的路径,但不允许 DS9 启动 xpans,即 IDL 可能对执行的进程 (DS9) 是否可以执行子进程 (xpans) 有限制. 如果是这种情况,您将不得不手动启动 xpans。

于 2014-08-29T15:08:50.907 回答