質問: cygwin + putty の挙動が意味わかんないんですけど。 windowsxpのマシンでcygwinのxサーバーを立ち上げて、puttyを用いてsshでリモートのlinuxサーバーにアクセスしようと思います。(つまりxウインドウも飛ばしてきてほしいのです。) 1.windowsxpのマシンにcygwinとputtyをインストールしました。 2.c:\cygwin\usr\x11r6\bin\startxwin.bat を実行し、cygwinのxサーバーを立ち上げる。ちなみに、startxwin.batの内容は、デフォルトのstartxwin.batに run xhost ***.***.***.*** を書き加えたのみ。(***.***.***.***がlinuxサーバーのhostname) 3.この状態で、puttyを立ち上げてsshでリモートのlinuxサーバーにアクセスし、ログイン。 4.適当にxウインドウを使うアプリケーションを立ち上げてみる。(以下のアカウントは仮名。また、???.???.???.???はwindowsマシンのhostname) login as: monkey monkey@***.***.***.***'s password: last login: sun jun 5 03:09:21 2005 from ???.???.???.??? setenv display ???.???.???.???:0.0 % xv xlib: connection to "???.???.???.???:0.0" refused by server xlib: no protocol specified xv: can't open display あれぇ?ちゃんとxhostでlinuxサーバーは指定したし、しかもディスプレイも目の前のマシンに切り替わってるはずなのに、 サーバーに拒否されるってどういうことよ??? 5.xサーバー、puttyが立ち上がっている状態で、再度 c:\cygwin\usr\x11r6\bin\startxwin.bat を実行。 6.再度、linuxサーバーからxウインドウを送ってみる。 % xv ・・・おおっ!xウインドウが飛んできたぞ!大成功! でもなんで c:\cygwin\usr\x11r6\bin\startxwin.bat を2回実行しないと xhost ***.***.***.*** が有効になってくれないんでしょうか? どなたか分かる方、教えていただけませんでしょうか?
回答: xhostは、xサーバ(ここではxwin.exeですね)がきちんと起動した状態でなければ動きません。 従って、原因として可能性が高いのは、そもそもstartxwin.batの中でxhostが実行されている瞬間に、またxサーバが起動完了してないということです。 私は、cygwinのxを使用するときは、コンソールのcygwin窓からstartxして使用しています。この方が普通のxと同じような使い方ができますし、.xinitrcで必要な初期化処理を行うことができるからです。 以上 ご参考までに。