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 を手動で開始する必要があります。