Linux
一旦內(nèi)核加載完成,內(nèi)核會啟動(dòng) init 進(jìn)程,然后運(yùn)行 rc6 腳本,之后運(yùn)行所有屬于其運(yùn)行級別的命令腳本。這
些腳本都儲存在 /etc/rc.d/rcN.d 中(N代表運(yùn)行級別),并且都建立著到 /etc/init.d 子目錄中命令腳本程序
的符號鏈接。
默認(rèn)運(yùn)行級別配置在 /etc/inittab 中。它通常為 3 或 5:
# grep default: /etc/inittab
id:3:initdefault: |
可以使用 init 來改變當(dāng)前運(yùn)行級別。舉個(gè)例子:
# init 5 # 進(jìn)入運(yùn)行級別 5 |
運(yùn)行級別列表如下:
0 系統(tǒng)停止
1 進(jìn)入單用戶模式(也可以是 S)
2 沒有 NFS 特性的多用戶模式
3 完全多用戶模式(正常操作模式)
4 未使用
5 類似于級別3,但提供 XWindow 系統(tǒng)登錄環(huán)境
6 重新啟動(dòng)系統(tǒng)
使用 chkconfig 工具控制程序在一個(gè)運(yùn)行級別啟動(dòng)和停止。
# chkconfig --list # 列出所有 init 腳本
# chkconfig --list sshd # 查看 sshd 在各個(gè)運(yùn)行級別中的啟動(dòng)配置
# chkconfig sshd --level 35 on # 對 sshd 在級別 3 和 5 下創(chuàng)建啟動(dòng)項(xiàng)
# chkconfig sshd off # 在所有的運(yùn)行級別下禁用 sshd |
Debian 和基于Debian 發(fā)行版像 Ubuntu 或 Knoppix 使用命令 update-rc.d 來管理運(yùn)行級別腳本。默認(rèn)啟動(dòng)為
2,3,4 和 5,停止為 0,1 和 6。
# update-rc.d sshd defaults # 設(shè)置 sshd 為默認(rèn)啟動(dòng)級別
# update-rc.d sshd start 20 2 3 4 5 . stop 20 0 1 6 . # 用顯示參數(shù)
# update-rc.d -f sshd remove # 在所有的運(yùn)行級別下禁用 sshd
# shutdown -h now (或者 # poweroff) # 關(guān)閉停止系統(tǒng) |
FreeBSD
BSD 啟動(dòng)步驟不同于 SysV, 她沒有運(yùn)行級別。她的啟動(dòng)狀態(tài)(單用戶,有或沒有 XWindow)被配置在 /etc/
ttys中。所有的系統(tǒng)腳本都位于 /etc/rc.d/中,第三方應(yīng)用程序位于 /usr/local/etc/rc.d/中。service 的啟
動(dòng)順序被配置在 /etc/rc.conf 和/etc/rc.conf.local中。默認(rèn)行為可在 /etc/defaults/rc.conf 中進(jìn)行配
置。 這些腳本至少響應(yīng) start|stop|status.
# /etc/rc.d/sshd status
sshd is running as pid 552.
# shutdown now # 進(jìn)入單用戶模式
# exit # 返回到多用戶模式
# shutdown -p now # 關(guān)閉停止系統(tǒng)
# shutdown -r now # 重新啟動(dòng)系統(tǒng) |
同樣可以使用進(jìn)程 init 進(jìn)入下列狀態(tài)級別。舉個(gè)例子: # init 6 為重啟。
0 停止系統(tǒng)并關(guān)閉電源 (信號 USR2)
1 進(jìn)入單用戶模式 (信號 TERM)
6 重新啟動(dòng) (信號 INT)
c 阻止進(jìn)一步登錄 (信號 TSTP)
q 重新檢查 ttys(5) 文件 (信號 HUP)
在FreeBSD下,查看系統(tǒng)的內(nèi)核安全級別可以用命令:
sysctl -a |grep securelevel