1

IDL の「spawn」コマンドで起動されたプログラムを XPA で表示するのに問題があります。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 通信で使用されるホスト/ソケットのペアにマップします。このネーム サーバーはコマンド ラインで手動で起動できますが、DS9 などの XPA 対応サーバーは、まだ実行されていない場合、自動的に xpans を起動しようとします。これを行うには、DS9 のパスに xpans が必要です。したがって、問題の最も簡単な説明は、xpans がターミナル ウィンドウで DS9 に渡されるシェル パスにあるが、IDL から DS9 に渡される IDL パスにないことです。それぞれのケースで DS9 を起動し、[File] -> [XPA-Information] を選択し、XPA_METHOD 値をマウスで指定して実行すると、これを確認できます。

xpaget [xpa-method] -env PATH

これにより、DS9 に直接 (ネーム サーバーをバイパスして) 接続され、DS9 がそれぞれの場合に持っているパスが通知されます。また、DS9 を起動する前後にそれぞれ「ps」を実行して、xpans プログラムを確認することもできます...

考えられる 2 番目の説明は、IDL が実際に DS9 に正しいパスを与えているが、DS9 が xpans を開始することを許可していないことです。つまり、実行されたプロセス (DS9) がサブプロセス (xpans) を実行できるかどうかに IDL 制限がある可能性があります。 . その場合、xpans を手動で開始する必要があります。

于 2014-08-29T15:08:50.907 に答える