solaris10執行級別和開關機控制
1.init說明
init程式是系統中所有程式的父程式,init程式繁衍出完成通常操作所需的子程式,這些操作包括:設定機器名、檢查和安裝磁碟及檔案系統、啟動系統日誌、配置網路介面並啟動網路和郵件服務,啟動列印服務等。
系統有多種執行級別,不同的執行級別所啟動的服務不同。系統執行級別有8種,分別為:init [0123456Ss]
init 0 : console access,即OK狀態,可以做硬體維護,可以關機
init 1: sigle user,系統的管理狀態,只允許root登陸,
init 2 : 多使用者狀態(NFS受限的)
init 3 : 多使用者狀態(NFS開放的)
init 4 : 未定義
init 5 : power down 狀態,console access 自動關閉電源
init 6 : halted and reboot
init S : administractiv tasks and repair of conrrupted file system ,console access
/etc下面有 rc0.d rc1.d rc2.d rc3.d rcS.d幾個資料夾,分別存放不同執行級別的啟動指令碼。
[@more@]2.inittab說明
/etc/inittab定義了系統預設執行級別,系統進入新執行級別需要做什麼。Solaris中init程式的主要任務是按照 inittab檔案所提供的資訊建立程式,由於進行系統初始化的那些程式都由init建立,所以init程式也稱為系統初始化程式。
inittab檔案的格式:inittab檔案中每一記錄都從新的一行開始,每個記錄項最多可有512個字元,每一項的格式通常如下:id:rstate:action:process,下面分別解釋。其中id欄位是最多4個字元的字串,用來唯一標誌表項。
rstate(run state)欄位定義該記錄項被呼叫時的執行級別,rstate可以由一個或多個執行級別構成,也可以是空,空則代表執行級別0~6。當請求init改變 執行級別時,那些rstate欄位中不包括新執行級別的程式將收到SIGTERM警告訊號,並且最後被殺死;只有a、b、c啟動的命令外(a、b、c不是 真正的執行級別)。
action欄位告訴init執行的動作,即如何處理process欄位指定的程式,action欄位允許的值及對應的動作分別為:
1)respawn:如果process欄位指定的程式不存在,則啟動該程式,init不等待處理結束,而是繼續掃描inittab檔案中的後續程式,當這樣的程式終止時,init會重新啟動它,如果這樣的程式已存在,則什麼也不做。 軟體開發網
2)wait:啟動process欄位指定的程式,並等到處理結束才去處理inittab中的下一記錄項。
軟體開發網
3)once:啟動process欄位指定的程式,不等待處理結束就去處理下一記錄項。當這樣的程式終止時,也不再重新啟動它,在進入新的執行級別時,如果這樣的程式仍在執行,init也不重新啟動它。
4)boot:只有在系統啟動時,init才處理這樣的記錄項,啟動相應程式,並不等待處理結束就去處理下一個記錄項。當這樣的程式終止時,系統也不重啟它。
5)bootwait:系統啟動後,當第一次從單使用者模式進入多使用者模式時處理這樣的記錄項,init啟動這樣的程式,並且等待它的處理結束,然後再進行下一個記錄項的處理,當這樣的程式終止時,系統也不重啟它。
6)powerfail:當init接到斷電的訊號(SIGPWR)時,處理指定的程式。
7)powerwait:當init接到斷電的訊號(SIGPWR)時,處理指定的程式,並且等到處理結束才去檢查其他的記錄項。
8)off:如果指定的程式正在執行,init就給它發SIGTERM警告訊號,在向它發出訊號SIGKILL強制其結束之前等待5秒,如果這樣的程式不存在,則忽略這一項。
9)ondemand:功能通respawn,不同的是,與具體的執行級別無關,只用於rstate欄位是a、b、c的那些記錄項。
10)sysinit:指定的程式在訪問控制檯之前執行,這樣的記錄項僅用於對某些裝置的初始化,目的是為了使init在這樣的裝置上向使用者提問有關執行級別的問題,init需要等待程式執行結束後才繼續。
11)initdefault:指定一個預設的執行級別,只有當init一開始被呼叫時才掃描這一項,如果rstate欄位指定了多個執行級 別,其中最大的數字是預設的執行級別,如果rstate欄位是空的,init認為欄位是0123456,於是進入級別6,這樣便陷入了一個迴圈,如果 inittab檔案中沒有包含initdefault的記錄項,則在系統啟動時請求使用者為它指定一個初始執行級別。
Process欄位中程式可以是任意的守候程式、可執行指令碼或程式。另外,在任何時候,可以在檔案inittab中新增新的記錄項,級別Q/q 不改變當前的執行級別,重新檢查inittab檔案,可以透過命令init Q或init q使init程式立即重新讀取並處理檔案inittab。
3.關機命令。
shutdown:
-i 加執行級別,default=S。使系統進入到與預設級別 S 不同的 init 級別。選項包括 0、1、2、5 和 6。執行級 0 和 5 是為關閉系統而保留的狀態。執行級 6 用於重新引導系統。執行級 2 可用作多使用者操作狀態。
-g 加時間引數,default=60'
-y
如:
#shutdown -g180 -y 三分鐘後進入S級別,單使用者模式
# shutdown -i0 -g120 -y 兩分鐘後關機
#shutdown -i6 -y 1分鐘後重啟
who -r 檢視當前執行級別,以及上一個執行級別!
例如:
run-level 3 Jun 28 13:17 3 0 s
poweroff 關閉系統並切斷電源
reboot 重啟系統
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/60144/viewspace-1023576/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx執行控制虛擬主機和訪問控制Nginx
- RedHat Linux7如何修改開機預設執行級別RedhatLinux
- Linux 執行級別Linux
- PostgreSQL 併發控制機制(2):表級鎖和行級鎖SQL
- Linux執行級別的檢視和修改Linux
- 關於多執行緒控制執行緒
- Java程式和執行緒關係及區別Java執行緒
- Linux 系統執行級別Linux
- Linux系統執行級別Linux
- sentinel流量控制和熔斷降級執行流程之原始碼分析原始碼
- 系統執行級別及修改方法
- PostgreSQL 併發控制機制(1):隔離級別SQL
- 關於觸發器在行級和語句級的執行順序問題觸發器
- 工業級交換機和網路級交換機區別?
- 執行緒和鎖,鎖升級執行緒
- Centos8種如何更改執行級別CentOS
- 程式和執行緒相關執行緒
- 關於企業級應用和web開發的區別Web
- 關於gridview改變行內容事件需要點選別的行或控制元件才能執行View事件控制元件
- 執行緒和程式的區別執行緒
- 程式和執行緒的區別執行緒
- 如何檢視CPU核數和執行緒數?CPU的核心數、執行緒數的關係和區別執行緒
- linux關閉防火牆/使用者的執行級別/chkconfig 用法Linux防火牆
- 執行迴路RunLoop型別機制OOP型別
- 執行緒控制之休眠執行緒執行緒
- centos7系統執行級別簡介CentOS
- Linux的七個執行級別原理概述Linux
- Linux系統的七個執行級別Linux
- 多執行緒-執行緒控制之休眠執行緒執行緒
- 多執行緒-執行緒控制之加入執行緒執行緒
- 多執行緒-執行緒控制之禮讓執行緒執行緒
- 多執行緒-執行緒控制之中斷執行緒執行緒
- 20170526-27關於GCD控制執行緒併發數,多執行緒併發數控制GC執行緒
- Unity控制把執行Unity
- GCD執行緒控制GC執行緒
- threading 多執行緒控制和處理thread執行緒
- 前端開發入門到實戰:html塊級元素和行級元素的區別和認識前端HTML
- 「Learning」區別執行緒和程式執行緒