so true

          心懷未來,開創(chuàng)未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數(shù)據(jù)加載中……

          玩轉(zhuǎn)X

          下面的分析是在Ubuntu環(huán)境下進(jìn)行的。

          X分為Server和Client,我們可以通過X :1 vt9來啟動一個X Server,然后DISPLAY=:1 gedit你會發(fā)現(xiàn)gedit這個client應(yīng)用會出現(xiàn)在vt9上(通過Ctrl+alt+F9)來切換,當(dāng)然你可以通過DISPLAY=:1 gnome-session在vt9上啟動一個gnome-session,這樣就相當(dāng)于你在本地打開了兩個桌面會話,其實這也可以通過startx -- :1 vt9這一個命令搞定。
          如果出現(xiàn)了“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到服務(wù)器,可以通過ssh -C -X server_ip來連接服務(wù)器,這樣可以執(zhí)行服務(wù)器上的任何窗口應(yīng)用了。但這么做之前請確保:設(shè)置服務(wù)器端配置文件/etc/ssh/sshd_config中包含"X11Forwarding yes";客戶端配置文件/etc/ssh/ssh_config包含"ForwardX11 yes"。這種情況下,從客戶端ssh到服務(wù)器端后, 服務(wù)端會自動設(shè)置DISPLAY環(huán)境變量, 允許在服務(wù)器端執(zhí)行的圖形程序?qū)D形顯示在客戶端上. 在服務(wù)器上查看環(huán)境變量顯示如下:
          DISPLAY=localhost:10.0
          在服務(wù)器上用netstat -lnpt可以看到有程序監(jiān)聽了6010端口
          tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     4827/1
          其實就是在服務(wù)器上啟動了一個XServer,偵聽6010端口,所以在服務(wù)器上運(yùn)行窗口應(yīng)用時(就是XClient)可以在在XServer上顯示,而ssh server會進(jìn)行X11Forwarding,這樣窗口就通過ssh隧道來到了客戶端,如果不希望在客戶端當(dāng)前vt上顯示的話,可以在例如vt9上開一個X,然后執(zhí)行DISPLAY=:1 ssh -C -X Server_ip

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

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

          再補(bǔ)充一點(diǎn),如果X完全掛掉了,需要手動啟動X,那么用sudo start gdm

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

          主站蜘蛛池模板: 木里| 太保市| 桦川县| 遂昌县| 炉霍县| 修文县| 分宜县| 株洲县| 化州市| 德清县| 扶余县| 斗六市| 宁强县| 江川县| 日喀则市| 华容县| 根河市| 贵南县| 万州区| 肇东市| 敦煌市| 奉新县| 根河市| 黔江区| 宁晋县| 镇平县| 巨鹿县| 滕州市| 永昌县| 镇宁| 铁岭市| 南澳县| 随州市| 莎车县| 虎林市| 望江县| 涟源市| 资兴市| 陕西省| 茂名市| 开化县|