Board logo

主題: runlevel N 3 + startx => rc3.d /rc5.d 何者執行 [打印本頁]

發表人: LSO    時間: 2006-7-28 11:23 PM     主題: runlevel N 3 + startx => rc3.d /rc5.d 何者執行

1> /etc/inittab   
       id:3:initdefault:
2> startx  -- :0      &
3> runlevel    N    3
4>   a>   依照 runlevel  應該是否執行 rc3.d? (假設無誤)
       b>    telinit 5   是確定執行 rc5.d 沒錯
       c>    依照  a>,b>  是否可認為
                  startx 是在 rc3.d 下執行 X window
                  telinit  5 是在rc5.d 下執行X window
        d>    同理 X window 下啟動過程也有差異
                  故不可以依 X window 是否啟動來判定
                  chkconfig
                                      
                                                           謝謝協助
謝謝協助
我想依據以下可得數個結論
1>不要因為是在圖形介面,就可以直覺認為是在runlevel 5
2>可以在較嚴格環境下,執行 X windows

[LSO 在  2006-7-29 09:51 PM 作了最後編輯]
發表人: innova    時間: 2006-7-29 12:31 PM

我想 你是要問:

CODE:
[Copy to clipboard]
你在 80x25 的 純文字黑白視窗中
自己打 "startx"
跟 打 "telinit 5"
有什麼不一樣 是吧?
1.
你在 runlevel 3 時, 預設 是不會自動跑 X
runlevel 5 則是 預設 會跑 X (而且 還有 X 的 login 畫面)

2.
手動打 "startx" 不會有 X 的 login 畫面出現!
(因為 你是已經 先login 進去了 才可能可以執行 "startx"命令! )
runlevel 5 則是 預設 用 X 的 login 畫面 等待 user登入

3.
"telinit 5" 其實 是進入 runlevel 5
而 runlevel 5 的預設值 就是會啟動 X
(這是因為runlevel 5 的設定值的關係, 所以 你才會看到X圖形介面啟動!)

4.
runlevel 5 會跑 X 最大的原因在
/etc/inittab 裡面的一行:

CODE:
[Copy to clipboard]
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
inittab 是 pid=1 的那個 init 程式 在看的東西!
第二個欄位 就是 runlevel
你裡面填 "5", 所以 runlevel 5 的時候 "init"程式 就會去執行 inittab檔案裡面的第四個欄位的東西
在這邊 就是 跑  "/etc/X11/prefdm"
這也是 為什麼 runlevel 會有圖形化的 login 畫面!

5.
runlevel 3 跟 runlevel 5
很可能會 提供/不提供 許多服務
至於 runlevel 3 跟 runlevel 5 分別會提供什麼服務
你要看 rc3.d 跟 rc5.d 裡面的檔案:

第一個英文字 不是 "K" 就是 "S"
第2~3固定是數字
第四個字之後 才是 init.d 裡面的服務的名稱

第一個 "K" 就表示 後面這服務, 在這個 runlevel 是 "不啟動" 的!
相反的 若第一個字 是 "S", 那就是 "會啟動"該服務!!

第2~3 個數字 則表示 啟動時的順序!  數字越小 越先啟動
... 你總不能 讓 mail/http/ftp.. 一堆網路服務都啟動完了 你才開始準備要啟用 network 服務吧!?
所以 這數字 是這服務的優先順序 也算是重要性
..... 所以 前面幾個(數字小的) 大概都是系統的 syslog/network 等驅動
關機/離開該 runlevel 時, 停止(stop)服務的順序 則是相反順序!!
後啟動的服務 最先停止! 先啟動的服務 最後才停止!!

你可以試著 手動 把 rc5.d 裡面的 "S85httpd" 改名為 "K15httpd"  (數字可能不會一樣!)
然後 在 runlevel 3 中 打  "telinit 5" 看看!!
看你現在 web 還跑不跑
(其實 chkconfig 就是在做這件重要的工作: 改檔名!! :p)
發表人: AQUA    時間: 2006-8-6 11:41 PM

innova大大的分析真透徹,而且很詳細,有看過我學長之前在設定Service也是用這樣的方法
相信大大看過很多的資料,把這樣好的經歷分享給大家,謝謝 ^^




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0