so true

          心懷未來,開創未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數據加載中……

          玩轉X

          下面的分析是在Ubuntu環境下進行的。

          X分為Server和Client,我們可以通過X :1 vt9來啟動一個X Server,然后DISPLAY=:1 gedit你會發現gedit這個client應用會出現在vt9上(通過Ctrl+alt+F9)來切換,當然你可以通過DISPLAY=:1 gnome-session在vt9上啟動一個gnome-session,這樣就相當于你在本地打開了兩個桌面會話,其實這也可以通過startx -- :1 vt9這一個命令搞定。
          如果出現了“X: user not authorized to run the X server, aborting.”這種錯誤,解決的方法是:修改/etc/X11/Xwrapper.config中的控制項:allowed_users=anybody。
          如果期望在vt9上為另外一個用戶打開一個X,需要先sudo login user2(使用su user2是不行的),然后再startx -- :1 vt9;或者先ssh user2@localhost,然后再startx -- :1 vt9,總之可以用w命令看一下,如果看不到user2就不行。

          很多時候我們ssh到服務器,可以通過ssh -C -X server_ip來連接服務器,這樣可以執行服務器上的任何窗口應用了。但這么做之前請確保:設置服務器端配置文件/etc/ssh/sshd_config中包含"X11Forwarding yes";客戶端配置文件/etc/ssh/ssh_config包含"ForwardX11 yes"。這種情況下,從客戶端ssh到服務器端后, 服務端會自動設置DISPLAY環境變量, 允許在服務器端執行的圖形程序將圖形顯示在客戶端上. 在服務器上查看環境變量顯示如下:
          DISPLAY=localhost:10.0
          在服務器上用netstat -lnpt可以看到有程序監聽了6010端口
          tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     4827/1
          其實就是在服務器上啟動了一個XServer,偵聽6010端口,所以在服務器上運行窗口應用時(就是XClient)可以在在XServer上顯示,而ssh server會進行X11Forwarding,這樣窗口就通過ssh隧道來到了客戶端,如果不希望在客戶端當前vt上顯示的話,可以在例如vt9上開一個X,然后執行DISPLAY=:1 ssh -C -X Server_ip

          可以設置DISPLAY=host:NumA.NumB,現在的系統啟動X時都不再偵聽端口,所以一般都是在本地玩X,如果服務器的X啟動時打開了端口,那么可以直接把客戶端的XClient放到服務器上,關于DISPLAY的詳細說明,大家可以參考:http://hi.baidu.com/twltnjbntobehiq/item/af145efbaa022a13d7ff8c88

          下面再說說常用的一款軟件vnc,一般我們用vncserver在服務器上啟動一個daemon進程偵聽端口,在客戶機上用vncviewer來連接服務器上的vncserver,從而開啟一個遠程X桌面,最新的vnc(5.0.3)為例,在服務器上安裝vncserver,別用/etc/vnc/下面的腳本啟動vncserver,也別用vncserver-x11啟動usermode的vncserver,這個server會讓vncviewer看到和server完全一樣的桌面,而且會同步控制server,用vncserver命令來啟動,在5.0.3中這種模式被稱作virtual模式,vncviewer連接這種vncserver后,相當于新開啟一個X桌面投放到vncviewer上了,啟動vncserver時可以通過添加-geometry和-depth來控制vncviewer看到的窗口大小和色深,這兩個參數其實是Xvnc的參數,可以通過Xvnc --help來看到更多的參數。

          再補充一點,如果X完全掛掉了,需要手動啟動X,那么用sudo start gdm

          posted on 2012-11-26 21:05 so true 閱讀(626) 評論(0)  編輯  收藏 所屬分類: Linux

          主站蜘蛛池模板: 富平县| 射阳县| 株洲市| 永康市| 香河县| 黄冈市| 彩票| 长海县| 民权县| 汉中市| 宣城市| 淮北市| 松溪县| 阿城市| 蓬安县| 沅陵县| 崇阳县| 青冈县| 铜山县| 涞源县| 汉源县| 邹平县| 嫩江县| 隆子县| 瑞安市| 札达县| 博兴县| 黄大仙区| 天全县| 商河县| 江达县| 宣武区| 宁远县| 高阳县| 柘荣县| 将乐县| 荥阳市| 德州市| 新余市| 莲花县| 安吉县|