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