主題: 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
我想 你是要問:
你在 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 裡面的一行:
# 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 |