2010年3月4日 星期四

如何讓 VNC Server 於系統啟動時自動執行

如果要讓 VNC Service 於系統啟動時自動執行該怎麼做呢?


方法不少,例如修改VNC Service 的服務運作管理命令稿(啟動命令稿)內容就是常見的一種。

如果可以用拋參數給命令稿的方式來達成目的,我大概就會用這個方法,不過習慣上我不喜歡去動非"設定檔"的內容,所以最近實作所使用的方法是透過修改系統啟動服務初始設定檔來達成這個目的。

適用發行版 : CentOS、RHEL (我想泛 RedHat 發行版應該都可以)


STEP 1. 設定所使用的 display 及帳號

a.開啟 /etc/sysconfig/vncserver


b.找到下列兩行
#VNCSERVERS="2:myusername"
#VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

c.註解拿掉並修改成
VNCSERVERS="1:vnc登入帳號"
VNCSERVERARGS[1]="-geometry 800x600 "

※ vnc登入帳號 : 要是一個系統實際存在的帳號,用來登入VNC Service。
※ vnc登入帳號可以使用 root 嗎? 當然可以!!! 不要命的話.....


STEP 2. 設定登入 VNC Service 所啟動的 X Window Manager

預設值是twn,如果嫌twn太陽春,就依下列方式修改使登入後依登入帳號的 X Window Manager 設定值啟動 X Window Manager.....

有點繞口...

總之,如果崇尚極簡風,不覺得介面難看、單調,這一步就跳過,不然就照著做。


a. 開啟登入帳號家目錄裡面的 .vnc/xstartup

b.找到下列兩行
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc

c.註解符號拿掉,同時把~/.vnc/xstartup 中其他內容全部註解

STEP 3. 設定 VNC 登入帳號的 VNC 登入密碼

 VNC 登入帳號的 VNC 登入密碼是VNC 登入密碼,VNC 登入帳號的系統登入密碼是系統登入密碼,是兩碼子事。


a.使用 su 切換身分為 VNC 登入帳號

b. 使用 vncpasswd 設定 VNC 登入密碼

STEP 4. 變更 VNC Service 的服務啟動層級設定

a. chkconfig vncserver on

STEP 5. 重啟系統使生效

由於實作時是所使用的 display 設定為 "1",所以 VNC Client 進行連線時要指定連線埠號為 "5901"。