so true

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

          玩轉(zhuǎn)X

          下面的分析是在Ubuntu環(huá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)來切換,當然你可以通過DISPLAY=:1 gnome-session在vt9上啟動一個gnome-session,這樣就相當于你在本地打開了兩個桌面會話,其實這也可以通過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īng)用時(就是XClient)可以在在XServer上顯示,而ssh server會進行X11Forwarding,這樣窗口就通過ssh隧道來到了客戶端,如果不希望在客戶端當前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的詳細說明,大家可以參考:http://hi.baidu.com/twltnjbntobehiq/item/af145efbaa022a13d7ff8c88

          下面再說說常用的一款軟件vnc,一般我們用vncserver在服務(wù)器上啟動一個daemon進程偵聽端口,在客戶機上用vncviewer來連接服務(wù)器上的vncserver,從而開啟一個遠程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后,相當于新開啟一個X桌面投放到vncviewer上了,啟動vncserver時可以通過添加-geometry和-depth來控制vncviewer看到的窗口大小和色深,這兩個參數(shù)其實是Xvnc的參數(shù),可以通過Xvnc --help來看到更多的參數(shù)。

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

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

          主站蜘蛛池模板: 武安市| 江山市| 深州市| 顺义区| 逊克县| 金华市| 奎屯市| 绩溪县| 乌恰县| 宁国市| 永嘉县| 灵宝市| 扎兰屯市| 延边| 静乐县| 克东县| 视频| 新密市| 阳高县| 都匀市| 长岛县| 安康市| 龙陵县| 平果县| 乐东| 镇远县| 永兴县| 新源县| 图木舒克市| 永登县| 罗源县| 阳东县| 田阳县| 德庆县| 筠连县| 晴隆县| 龙门县| 荥经县| 姚安县| 镇安县| 扎囊县|