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

          主站蜘蛛池模板: 日土县| 田东县| 宝山区| 绥芬河市| 石楼县| 宜城市| 清水河县| 泸州市| 定结县| 盖州市| 翁牛特旗| 仙桃市| 那坡县| 渭源县| 遂宁市| 东乡县| 广灵县| 同德县| 黄大仙区| 北碚区| 义乌市| 三原县| 临沭县| 来安县| 平利县| 尉氏县| 安泽县| 天峻县| 德州市| 蒲城县| 南开区| 宿松县| 茂名市| 搜索| 九江县| 庆城县| 新竹县| 昌平区| 湘西| 西畴县| 康定县|