Unix(Solaris)系統運作級别
系統運作級别有8種,分别為:
運作級别 意義
0 進入PROM狀态(OK狀态)
1 管理狀态(所有檔案系統都挂上的單使用者模式,禁止其他使用者登入)
2 多使用者模式(沒有網絡檔案共享服務)
3 多使用者模式(有網絡檔案共享服務)
4 未使用
5 退出作業系統并關機
6 重新啟動機器
S,s 單使用者模式
init指令用于改變作業系統的運作級别。
指令格式:
init [ 0123456Ss ]
例:
Booleanlab#init 6
也可以用reboot 來重新開機Unix系統
Linux的系統運作級别
簡單的說,運作級就是作業系統目前正在運作的功能級别。這個級别從1到6 ,具有不同的功能。
不同的運作級定義如下:(可以參考Red Hat Linux 裡面的/etc/inittab)
0 - 停機(千萬不能把initdefault 設定為0 )
1 - 單使用者模式
2 - 多使用者,沒有 NFS
3 - 完全多使用者模式(标準的運作級)
4 - 沒有用到
5 - X11 (xwindow)
6 - 重新啟動 (千萬不要把initdefault 設定為6 )
這些級别在/etc/inittab 檔案裡指定。這個檔案是init 程式尋找的主要檔案,最先運作的服務是放在/etc/rc.d 目錄下的檔案。在大多數的Linux 發行版本中,啟動腳本都是位于 /etc/rc.d/init.d中的。這些腳本被用ln 指令連接配接到 /etc/rc.d/rcn.d 目錄。(這裡的n 就是運作級0-6)
RedHat系統運作級别(Linux的一種,大緻與Linux相同)
0:關機級别
1:單使用者運作級别,運作rc.sysinit和rc1.d目錄下的腳本
2:多使用者,但系統不會啟動NFS,字元模式,在有些linux系統中,級别2為預設模式,具有網絡功能,如ubuntu.debian
3:多使用者,字元模式,系統啟動具有網絡功能,redhat常用運作級别
4:使用者自定義級别
5:圖形界面模式,redhat常用運作級别
6:重新開機級别
S:單使用者運作級别,隻運作rc.sysinit檔案
s:單使用者運作級别,隻運作rc.sysinit檔案
single:單使用者運作級别,隻運作rc.sysinit檔案
emergency:隻運作sulogin,一般系統出啟動錯誤時,會自動進入此級别,使用者需輸入root使用者密碼即可進入,再修改錯誤的内容。
修改:以管理者身份進入Linux,修改檔案:/etc/inittab檔案,找到"id:5:initdefault:"字段,其中的5就是X-Window,為預設運作級别,我們用vi inittab編輯它,把5改為3,:wq儲存退出,并重新開機即可。
運作級别的配置(RedHat)
運作級别的配置是在/etc/inittab行内進行的,如下所示:
12 : 2 : wait : / etc / init.d / rc 2
各字段解釋如下:
id:runlevels:action:process
id:是一個任意指定的四個字元以内的序列标号,在本檔案内必須唯一;使用老版本的libc5(低于5.2.18)或a.out庫編譯出來的sysvinit限制為2字元。注意:像getty之類的登陸程序必須使id字段與tty編号一緻,如tty1需要id=1,許多老版本的登陸程序都遵循這種規則。
runlevels:表示這一行适用于運作那個/些級别(這裡是2,可以有多個,表示在相應的運作級均需要運作);另外sysinit、boot、bootwait這三個程序會忽略這個設定值。
action:表示進入對應的runlevels時,init應該運作process字段的指令的方式,常用的字段值及解釋在附錄内。例子中的wait表示需要運作這個程序一次并等待其結束。
process:具體應該執行的指令。例子中的/etc/init.d/rc指令啟動運作級别2中應該運作的程序/指令,并負責在退出運作級時将其終止(當然在進入的runlevel中仍要運作的程式除外。)
當運作級别改變,并且正在運作的程式并沒有在新的運作級别中指定需要運作,那麼init會先發送一個SIGTERM 信号終止,然後是SIGKILL。
有效的action值如下:
respawn:表示init應該監視這個程序,即使其結束後也應該被重新啟動。
wait:init應該運作這個程序一次,并等待其結束後再進行下一步操作。
once:init需要運作這個程序一次。
boot:随系統啟動運作,是以runlevel值對其無效。
bootwait:随系統啟動運作,并且init應該等待其結束。
off:沒有任何意義。
initdefault:系統啟動後的預設運作級别;由于進入相應的運作級别會激活對應級别的程序,是以對其指定process字段沒有任何意義。如果inittab檔案内不存在這一條記錄,系統啟動時在控制台上詢問進入的運作級。
sysinit:系統啟動時準備運作的指令。比如說,這個指令将清除/tmp。可以檢視/etc/rc.d/rc.sysinit腳本了解其運作了那些操作。
powerwait:允許init在電源被切斷時,關閉系統。當然前提是有U P S和監視U P S并通知init電源已被切斷的軟體。RH linux預設沒有列出該選項。
powerfail:同powerwait,但init不會等待正在運作的程序結束。RH linux預設沒有列出該選項。
powerokwait:當電源監視軟體報告"電源恢複"時,init要執行的操作。
powerfailnow:檢測到ups電源即将耗盡時,init要執行的操作,和powerwait/powerfail不同的喲。
ctrlaltdel:允許init在使用者于控制台鍵盤上按下Ctrl + Alt + Del組合鍵時,重新啟動系統。注意,如果該系統放在一個公共場所,系統管理者可将Ctrl + Alt + Del組合鍵配置為别的行為,比如忽略等。
kbrequest:監視到特定的鍵盤組合鍵被按下時采取的動作,現在還不完善。