- ベストアンサー
VNCとXの関係について
- VNC関連の過去ログは多かったのですが該当する質問が見つけられなかったため投稿させていただきます。
- RedHat9のマシンにtightvncサーバをインストールし、別マシンからviewerを利用するとサーバのマシンとクライアントのマシンで描画されてるデスクトップが異なります。
- VNCのサーバとクライアントでディスプレイの同期、マウス、キーボードの同期ができていないということです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ちょっとVNC入れて試してみました。 が、 やればやるほどできないような気がしてきました。 やはり同じ番号のXサーバを同時に立てるというのは無理そうです。 「/tmp/.X?-lock」というファイルの存在の有無で?番のサーバが立ちあがっているかどうかを識別し、同じ番号のサーバが起動しないようにしているようなので、無理やりこのファイルを改名してみたのですが、識別そのものは無効にできたものの、サーバ-クライアント間の接続を奪い取るというのはできないようです。 結局、 1. 実機でGUI画面を表示するためにはXサーバを起動することが必要 2. vncserverを起動するさいには、新しいXサーバが起動する 3. 同じ番号のXサーバを多重起動することはできない 4. 同時に2つの別の番号のXサーバに同じ画面を表示するような機能は(おそらく)無い ことから、無理なような気がします。 仮想コンソール(X上のコンソール)で起動したところで、コンソール上のソフトとして動くわけでもないので同じ番号のXサーバは存在できないですし。 で、このままではさびしいので代案。 vncviewer 127.0.0.1:1 -fullscreen -passwd ~/.vnc/passwd とすることで、vncviewerをあたかもウインドウマネージャーの代わりのように振舞わせることができます。 要は実機の表示もvncviewerでやってしまおう(Xサーバ本体は裏で動いているだけ)ということです。 VNCサーバを挟むことで上記4の問題をカバーできるようになります。 このままGNOME上で起動することも可能ですし、(X起動周辺はあまりよく知りませんが)xdmやstartx周りをうまく設定してやれば多分自動化させる(ログイン時にvncserverを起動し、さらにvncviewerをフルスクリーンで立ち上げる)ことも可能だと思います。 GNOME上で起動した場合は、vncserverでもGNOMEを起動しているとGNOMEが2つも起動していることになるので、そこそこのスペックのものでないと苦しくなってくると思います。 イメージとしてはこんな感じですね。 GNOME | Xserver | VNCviewer VNCserver | Xserver L i n u x
その他の回答 (2)
- hofuhofu
- ベストアンサー率70% (336/476)
結構古い掲示板なので、今の環境にどこまで当てはまるかわかりませんが、ここでは無理ということになってますね。 http://www.realvnc.com/pipermail/vnc-list/1999-February/005157.html 最後でXサーバそのものがVNCを想定して作られるようにならないとできない、と結論づけられてました。 vncserver :0 では本来、 New 'X' desktop is localhost:0 と表示されて欲しいところで、 A VNC server is already running as :0 となってしまうそうです。 すでにXサーバが繋がっている番号(実機のディスプレイに表示されている画面)には、vncserverは割り込めないとのことでした。
お礼
ご回答ありがとうございました。 VNC用にXが立ち上がってしまうということが 結論のようですね。 また質問の際にはよろしくお願いいたします。
補足
#1の補足入力中に回答いただいたようです。 ありがとうございます。 私の質問と同じことを質問している方がいらっしゃった ようですね。検索不足で大変申し訳ございません。 英語は得意でないので英語のサイトを探しておりません でした。参考URLの質問文しかまだ読んでおりませんが 私の質問と一致していると思われます。 一個前の補足にも記述したのですがサーバを立てるマシン にログインし、VNCサーバをたてた場合Viewerで描画され ないのでそれができる方法を先に探したいと思います。 本筋からそれてきてしまいましたがご回答いただければ 幸いです。
- hofuhofu
- ベストアンサー率70% (336/476)
Xサーバとディスプレイ番号の関係はこちらが参考になるでしょうか。 http://www.atmarkit.co.jp/flinux/special/vnc01/vnc01b.html http://www.geocities.co.jp/Hollywood-Kouen/5738/Vnc.htm http://www.amy.hi-ho.ne.jp/masuda/pc/vnc/xvnc.html UNIX用のVNCはXサーバの特性を引き継いでいて、複数の仮想デスクトップを同時に扱うことができるので、その影響で実機のデスクトップが見えなくなっているのでしょう。 たとえば、 vncserver :1 vncserver :2 とすることで同時に2つのvncserverを起動することができるので、1、2番でまったく別のデスクトップを表示することができますし、2人が別々の端末から同時に同じホストを操作することもできます。 もちろん、2人が同じ番号で接続すれば同じデスクトップが見えるはずです。 これはX用VNCに特有なものでWin用ではXサーバが元になっているわけではないので、同時に操作するということはできません。 常にデスクトップは一つしか存在しませんし、まともに操作できるのは同時に一人だけです。 WinXP SP2からはリモートデスクトップでできるようになるらしいですけど。 http://pcweb.mycom.co.jp/news/2003/05/12/21.html やったことはないのでまったく自身はないですが、 vncserver :0 としてやれば、実機のデスクトップを操作できるようになるかもしれません。
お礼
投稿直後の回答ありがとうございました。 多くの有益なURLを教えていただき参考になりました。
補足
ご回答ありがとうございます。 つまりVNCサーバを立ち上げた時点でXを立ち上げていて そのデスクトップ番号を入れれば同じ画面になるという 認識でよろしいでしょうか。 vncserver :1 vncviewer hogehoge :1 でやればどのVNCviewerでも同一画面を利用可能と言う ことですよね。 今試してみたところその通りのようです。 具体的なタイミングはわかりませんが 1.VNCサーバを立ち上げる(:1) 2.VNCViewerを立ち上げる(:1) 3.Xが立ち上がる 4.VNCViewerに画面を送る 以下VNCViewerで:1を見ると3.の画面を描画といった 感じを受けました。 今回私が失敗したのは別に原因があるようで 1.winマシンよりsshでRedHatにログイン 2.VNCサーバ起動させる 3.winのviewerを起動 とやっていたのですがこの場合、上述のように実機とは 別にXをたちあげているようでした。 そこで試しに実機で実際に(グラフィカル)ログインし VNCサーバを立て、winからViewerで見るという方法に しました。 その結果同じ結果(別途にXが立ってしまう現象)になると 思われましたがViewerは全体がグレーになって 描画されませんでした。 failed connect serverとでないためサーバに接続 できているようなのですが描画されていませんでした。 今思えば以前実機のディスプレイが共有できていたときは 実際に実機でログインしてその上でコンソールを開き サーバをたてていたような気がするので、これで Viewer側での表示ができるようになれば実機と画面を 共有できる気がしました。 最初の質問と若干のずれはありますがお願いいたします。 長文になってしまいましたがわからない点があれば 是非ご質問ください。 ちなみに vnserver :0は A VNC server is already running as :0 でvncviewerでhogehoge :0はfailed connect server でした。
お礼
ご回答ありがとうございました。 1. 実機でGUI画面を表示するためにはXサーバを起動することが必要 2. vncserverを起動するさいには、新しいXサーバが起動する 3. 同じ番号のXサーバを多重起動することはできない 4. 同時に2つの別の番号のXサーバに同じ画面を表示するような機能は(おそらく)無い という4つが確認していただけたので通常では不可という 認識で質問を閉めたいと思います。 実験までしていただき大変助かりました。 ご丁寧にありがとうございました。