2008年10月3日 星期五

如何修改Ubuntu的開機流程?

在Red Hat/SUSE的環境中,修改開機時開啟的服務是經由
chkconfig
這個命令來達到的,而開機的level則是修改/etc/inittab這個檔案裡面有一行

id:5:initdefault:
....^
這是預設的runlevel

以上是redhat/suse的方式
若要開機執行script,
Red Hat 版本請將script加入
/etc/rc.d/rc.local
SUSE則請將script加入
/etc/init.d/boot.local


目前ubuntu7.04已經不是使用上述的方式來管理開機,啟動方式是用upstart

各種設定檔案放在/etc/event.d底下

其中的rc-default檔案內容如下

=========================

#
# This task guesses what the "default runlevel" should be and starts the
# appropriate script.

start on stopped rcS

script
runlevel --reboot || true

if grep -q -w -- "-s\|single\|S" /proc/cmdline; then
telinit S
elif [ -r /etc/inittab ]; then
RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)"
if [ -n "$RL" ]; then
telinit $RL
else
telinit 2
fi
else
telinit 2
fi
end script

============================

仔細觀察可以發現裡面會先檢查/etc/inittab中有沒有
id:5:initdefault:
這行文字

如果沒有的話,則預設啟動為runlevel 2

如果想要修改預設的runlevel,可以有以下方法

1.增加/etc/inittab並寫入
id:5:initdefault:

2.將/etc/event.d/rc-default裡面最後的
telinit 2
都改成
telinit *

由於ubuntu的其他runlevel有什麼功能並不是十分清楚
個人查看rc3.d到rc5.d其中的內容幾乎都是相同
跟rc2.d的內容僅有差在S99stop-readahead以及S10powernowd.early
如果您只是不想要圖形介面的話,可以自行將rc2.d的資料夾內容中的
S13gdm
改名為
_S13gdm
即可

如果還是想要執行圖形介面的話
執行
#/etc/init.d/gdm
即可

以上方法個人沒有實際測試過,僅有根據手上的7.04 LiveCD及以下網誌推論
http://www.wretch.cc/blog/kenshinn&article_id=2536325
http://ku777.blogspot.com/
http://blog.mypapit.net/2007/03/where-can-i-find-inittab-in-ubuntu-edgy-eft-or-feisty-fawn.html

0 意見: