xon(1) を使っていると、初めのうちはうまく動いてくれなくて
苦労します。
エラーメッセージが出ないので初めのうちはワケワカランことも。
でも、一歩ずつ問題を潰していけば使えるようになるはずです。
xon(1) は rsh(1)である(HP-UXユーザーはremshに読み変えましょう)
xonのコードを見てもらえば分かりますが、
これは実はシェルスクリプトです。
内部的には
% rsh remotehost xterm -display $DISPLAYを、さらに(かなり?)細工しているだけです。 ですから、上の
rshが正常に実行できれば
xonも使えるはずです。
xon がやっている細工の大部分は、ローカル側の rsh、リモート側の sh を残さずに xterm だけを動かすようにするもの。 自分でこれをやってみるのもいい勉強になります。エラーメッセージが出ないのは stdout などをここで全部捨てているからです。
.rhostsは正常か?まず
% rsh remotehost dateが使えるかどうか試してみましょう。
xonを使おうと思っているレベルの人ならこれが動かない
ということはまずないと思いますが、
使えない場合は rlogin のマニュアルを参照して
リモート側の~/.rhostsを設定しましょう。
rshがうまくいったら、今度はリモート側に rlogin し、
remote% kterm -display mydisplay:0を試してみます。
kterm Xt error: Can't open display: mydisplay:0Xlib: Client is not authorized to connect to Serverlocal% xhost +とすればつながるようになります。 が、「セキュリティを無効にする」ことなので、本当は好ましくありません。 抜本的な対策はここでは述べませんが、
xauth(1)にある例や
Xsecurity(1)のマニュアルを参照して下さい。
DISPLAYは?ローカル側のDISPLAY環境変数がすでに FQDN であれば
(X端末ではそう設定されていることがある)
xonは使えるようになっているはずですが、
FQDN でなかったり、コンソール (DISPLAY==":0.0") では
まだ問題が生じることがあります。
xonのコードを見てもらえば分かりますが、
DISPLAY が ":0" や ":0.0" といった場合、リモート側には
`hostname`:0が
-displayの引数として
渡ります。
ここで、`hostmame`が FQDN でないような場合
(ノード名だけ…BSD4.3以前のOSなど)、
これのIPアドレスがリモート側で索けないとうまくいきません。
local% rsh remotehost ping `hostname` ping: unknown host localこのような場合の解決方はいくつかあり、
/etc/hostsに登録してもらうのが割と簡単です。
が、これを歓迎しない管理者もいますから、
`hostname`に FQDN を入れてもらうxonをいじる`hostname`の部分を
`hostname`.your.domain.ac.jpに
書き換えてしまいます。
(`domainname`は意味が違うので使用不可)
自分の FQDN を得る方法というのは、実をいうと「美しい」 方法がないので、こうせざるを得ない部分があります。 (だから`hostname`にFQDNを入れておく)
DISPLAY=123.45.67.8:0にしてしまう…DISPLAY=FQDN:0 にしてしまう…上のコンソールの事例に準じますが、DISPLAYが
FQDN になっていなければ
LAN 内 (/etc/hostsの勢力範囲)
でしか xon できないことがあります。
.xsessionで FQDN に加工したり、IPアドレスを直に入れてしまうのがいいでしょう。
:0.0 は あり得ないので、UNIX socket 云々は
関係ありません。
プロンプトからだと xon できるのに、twmなどのメニューに仕込むと 起動できないというような場合。 一番ありがちなのは、
{.xsession,.xinitrc} で PATH を設定してますか?
いわゆるデスクトップ環境なウィンドウマネジャならこのへんも
めんどう見てくれますが、プリミティブなものを使っていたり、
.cshrcをいじり倒していて.xsessionと食い違って来たような時に
現れます。
(PATH=`$SHELL -c 'echo $PATH'` とかやるのが簡単かな)
…もっともこういった場合はメニューに仕込んだ普通の Xアプリケーションも起動しないはずなので xon 以前の段階で 悩んでるとは思いますが…