http://nmc.nchu.edu.tw/linux/Linux_boot.htm


 


Linux系統的啟動程序


 







Linux的啟動









Linux Runlevel










7 RunLevel
因應不同需求,Linux(UNIX)可以分為七種不同啟動模式,或七種不同執行等級,一般正常使用的系統多開啟為Level 3 或5




























Runlevel

代表意義


0關機
1單人模式(Single User Mode)
2多人使用模式,無NFS功能(網路是啟動的)
3完整多人使用模式
4unused
5完整多人使用模式,xdm啟動(圖形Login畫面)
6重新開機(Reboot)

Run Level的改變
root可以使用inittelinit切換到不同Run Level
init 0 = shutdown -h 
init 6 = reboot









/etc/inittab內容解讀






















/etc/inittab內容(Just For RedHAT Linux)

id : 3 : initdefault :
si : : sysinit: /etc/rc.d/rc.sysinit

l0 : 0 : wait: /etc/rc.d/rc 0
l1 : 1 : wait: /etc/rc.d/rc 1
l2 : 2 : wait: /etc/rc.d/rc 2
l3 : 3 : wait: /etc/rc.d/rc 3
l4 : 4 : wait: /etc/rc.d/rc 4
l5 : 5 : wait: /etc/rc.d/rc 5
l6 : 6 : wait: /etc/rc.d/rc 6

ud : : once : /sbin/update
ca : : ctrlaltdel : /sbin/shutdown -t3 -r now
pf : : powerfail :/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr : 12345 : powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

1 : 2345 : respawn : /sbin/mingetty tty1
2 : 2345 : respawn : /sbin/mingetty tty2
3 : 2345 : respawn : /sbin/mingetty tty3
4 : 2345 : respawn : /sbin/mingetty tty4
5 : 2345 : respawn : /sbin/mingetty tty5
6 : 2345 : respawn : /sbin/mingetty tty6

x : 5 : respawn : /etc/X11/prefdm -nodaemon



/etc/inittab每一行的意義
Format: code:runlevels:action:process

code: 這是每"項目"()的識別碼,他的格式可以是一個字元或兩個字元,某些特殊動作必須搭配特酥識別碼,系統預定的識別碼建議不要更動它。

runlevels:這是這個"項目"()指定的Run Level,他的格式可以是0~6任何數目字元的組合,只要系統目前Run Level符合這個項目指定的層級,則這行的內容會自動生效,這行所指定的Command也將會被執行。
例如:當系統開機至
Run Level 5時,項目『x : 5 : respawn : /etc/X11/prefdm -nodaemon』就會被執行,當系統開機至Run Level 2345時,項目『1 : 2345 : respawn : /sbin/mingetty tty1』都會生效。

action:這個欄位告訴"init"如何處理這個項目,可用選項有:initdefaultwaitrespawn等共15種不同的值,他們所代表的意義請用"man initttab"一窺究竟。

process:要執行的命令與參數。



id : 3 : initdefault :
action "initdefault"告訴 init 將系統開至Run Level 3



si : : sysinit: /etc/rc.d/rc.sysinit
runlevel
欄位空白告訴init不管系統開到哪一個Run Level都要執行這一項目(rc.sysinit)
action "sysinit"
告訴init優先執行這個項目。"sysinit"將忽略runlevel欄位。



 ca : : ctrlaltdel : /sbin/shutdown -t3 -r now
action "ctrlaltdel"
告訴init當系統收到SIGINT(or User同時按下Alt+Ctrl+Del),執行這個項目(/sbin/shutdown -t3 -r now)。如果你不希望你的系統因為有人在Console按下Alt+Ctrl+Del而重新開機時,你可以修改這個項目。



5 : 2345 : respawn : /sbin/mingetty tty5
表示在進入RunLevel 2/3/4/5/6時執行 "/sbin/mingetty tty5 "action "respawn"表示在一個session結束後(Userlogout Console tty5),在執行一次"/sbin/mingetty tty5 ",如果此處不用repawn的話,當User Logout tty5,這個Virtual Terminal將一去不復返,也就是"Alt+F5"將不再發生作用。




 


http://blog.orz101.net/node/171


 


linux的各大發行版,都有些不必要的服務被預設開啟了,針對ubuntu,我們可以採用選擇
性關閉的方法加速起動,提高系統性能。
這里我們安裝一個軟體:


sudo apt-get install sysv-rc-conf


然后這樣起動:


sudo sysv-rc-conf


在這個軟體里,可以用鍵盤的方向鍵移動,用空格選取,也可以直接用滑鼠選取,最后用
q保存退出,一下列出服務的名稱和基本的解釋。


acpi-support 這個是關於電源支持的預設是1,2,3,4,5下啟動,我認為你可以把它調整
到s級別。
acpid acpi的守護程序,預設是2-5開啟,我認為可以不用管。
alsa alsa聲音子系統,應該不用開啟它。
alsa-utils 這個服務似乎取代了alsa,所以開啟這個就可以了,我在S級別開啟它。
anacron 這是一個用於執行到時間沒有執行的程序的服務,我認為它無所謂,所以關
了它,這個可以隨便。
apmd 也是一種電源管理,我認為電腦如果不是很老,它就沒有開啟的必要了。
atd 和anacron類似,我把它關了。
bluez-utiles 傳說中的藍牙服務,然后遺憾我沒有,所以關了。
bootlogd 似乎使用來寫log的,安全期間開著他也許比較好。
cron 指定時間運行程序的服務,所以開著比較好的。
cupsys 印表機服務,所以如果你有,就開啟吧。
dbus 消息匯流排系統,非常重要,一定要開。
dns-clean 撥號連接用的,如果不用,就關了它。
evms 企業卷管理系統,由於我並不明白什麼叫做企業卷,所以我關了它。
fetchmail 用於信件守護,我關了它。
gdm gnome桌面管理器,我關了它,然后用startx啟動gnome。
halt 關機用的,不要更改
hdparm 這個我剛才有講,如果沒有ide硬碟也就不用開啟它了。
hotkey-setup 這個是給某些品牌筆記本設計的快速鍵映射,桌上型使用者請關了它
hotplug 這個是用於熱插拔的,我已經測試過了,在某些電腦上關閉它會使音效卡無效
,請在S級別開啟它。
hplip hp印表機專用的,應該可以關了它。
ifrename 網絡接口重命名,好像沒用,關了。
ifupdown 這個使用來打開網絡的,開著它。
ifupdown-clean 同上。
klogd linux守護程序,接受來自內核和送出資訊到syslogd的記錄,並記錄為一個文
件,所以請開著它。
linux-restricted-modules-common 這個使用來使用受限制的模塊的,你可以從/lib/
linux-restricted-modules下查看,如果沒有什麼,你可以關掉它。
lvm 邏輯卷管理器,如果你沒有請關了它。
makedev 用來創建設備到/dev/請不要動他。
mdamd 管理raid用,如果你沒有請關閉它。
module-init-tools 從/etc/modules 加在擴展模塊的,這個一般開著。
networking 增加網絡接口和配置dns用,將它開啟。
ntp-server 與ubuntu時間服務器進行同步的,關了。
pcmcia 激活pcmica設備,遺憾我有生以來都沒有見過這樣的設備,關了它。
powernowd 用於管理cpu的客戶端程序,如果有變頻功能,比如amd的quite' cool 那
麼就開啟它吧。
ppp 撥號用的,我關了它。
ppp-dns 一樣,也關了。
readahead 預加載服務,讓我想起了win的預讀,當然他們不同,它會使啟動變慢3-4妙
,所以我關了它。
reboot 重啟用的,不要動。
rmnologin 如果發現nologin,就去除它,在筆記本上不用開啟。
rsync rsync協議守護,請視情況而定。
screen-cleanup 一個清除開機屏幕的腳本,隨便。
sendsigs 重啟和關機時向所有進程送出消息。所以不要管它。
single 激活但使用者模式,不用管它。
stop-bootlogd 從2,3,4,5級別停止bootlogd,不用管它。
sudo 這個不用說吧,不用管它。
sysklogd 用於記錄系統日志資訊,不用管它。
udev 使用者空間dev文件系統,不用管它。
udev-mab 同上。
umountfs 用來卸載文件卷的,不用管它。
urandom 生成隨即數的,不知道怎麼用,不用管它。
usplash 那個漂亮的啟動畫面,但是我關了它,它也存在,所以想關他需要把內核起
動參數中的splash一句刪掉。
vbesave 顯卡bios配置工具,不用管它。
xorg-common 設置x服務ice socket。不用管它。


 


http://210.240.134.50/xoopx/modules/tadbook2/view.php?book_sn=&bdsn=402


我們利用update-rc.d --help來看這道指令的用法

root@ftp:/etc/init.d# update-rc.d --help
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | SS KK]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
        -n: not really
        -f: force








root@ftp:/etc/init.d# update-rc.d --help
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | SS KK]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
        -n: not really
        -f: force



所以當我們要增加一個服務(在所有runlevel)時只要在命令列輸入

sudo update-rc.d ServiceName defaults






sudo update-rc.d ServiceName defaults

刪除一個服務(在所有runlevel)時只要在命令列輸入


sudo update-rc.d ServiceName remove


可以指定在特定的runlevel增加一個服務,在命令列輸入






sudo update-rc.d ServiceName start 91 2 3 4 5 .
註:[91]為指定runlevel中K(關閉)和S(啟動)後的數字,[2 3 4 5]為指定的runlevel, [.] 則必須加上喔!且要與前一個數字空一格。
sudo update-rc.d ServiceName start 91 2 3 4 5 .
註:[91]為指定runlevel中K(關閉)和S(啟動)後的數字,[2 3 4 5]為指定的runlevel, [.] 則必須加上喔!且要與前一個數字空一格。



arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()