Debian init 開機啟動管理

Erasin發表於2013-12-18

Debian init 開機啟動管理

title: Debian update-rc.d 命令開機啟動管理 tags: Debian,update-rc.d,raspberrypi,raspbian,樹莓派

OS: Raspbian “wheezy”

Debian系統中update-rc.d命令,是用來更新系統啟動項的指令碼。這些指令碼的連結位於/etc/rcN.d/目錄,對應指令碼位於/etc/init.d/目錄

Linux系統主要啟動步驟

讀取 MBR 的資訊,啟動 Boot Manager。

載入系統核心,啟動 init 程式, init 程式是 Linux 的根程式,所有的系統程式都是它的子程式。

init 程式讀取 /etc/inittab 檔案中的資訊,並進入預設的執行級別。通常情況下 /etc/rcS.d/ 目錄下的啟動指令碼首先被執行,然後是/etc/rcN.d/[^1] 目錄。

根據 /etc/rcN.d/ 資料夾中對應的指令碼啟動 Xwindow 伺服器 xorg,Xwindow 為 Linux 下的圖形使用者介面系統。

啟動登入管理器,等待使用者登入。

執行級別

Debian中的執行級別

  • 0 - 停機(千萬不要把initdefault設定為0 )
  • 1 - 單使用者模式(單使用者模式,只允許root使用者對系統進行維護。)
  • 2 - 多使用者,但是沒有NFS
  • 3 - 完全多使用者模式(字元介面)
  • 4 - 基本不用
  • 5 - X11(圖形介面)
  • 6 - 重新啟動(千萬不要把initdefault設定為6 )

可修通過修改 /etc/inittab 來修改啟動級別

切換執行級別

init [0123456Ss]

例如:

init 0 命令關機; 
init 6 命令重新啟動

啟動項管理工具

sysv-rc-conf

update-rc.d命令詳解

從所有的執行級別中刪除指定啟動項

update-rc.d -f remove

按指定順序、在指定執行級別中啟動或關閉

update-rc.d start|stop

Insert links using the defaults:

update-rc.d foobar defaults

Equivalent command using explicit argument sets:

update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .

More typical command using explicit argument sets:

update-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 .

Remove all links for a script (assuming foobar has been deletedalready):

update-rc.d foobar remove

Example of disabling a service:

update-rc.d -f foobar remove
update-rc.d foobar stop 20 2 3 4 5 .

Example of a command for installing a system initialization-and-shut‐down script:

update-rc.d foobar start 45 S . start 31 0 6 .

Example of a command for disabling a system initialization-and-shutdown script:

update-rc.d -f foobar remove
update-rc.d foobar stop 45 S .

例項:

update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .

表示在2、3、4、5這五個執行級別中,由小到大,第20個開始執行apachectl;在 0 1 6這3個執行級別中,第20個關閉nginx。這是合併起來的寫法,注意它有2個點號,效果等於下面方法:

update-rc.d nginx defaults

A啟動後B才能啟動,B關閉後A才關閉

update-rc.d A defaults 80 20
update-rc.d B defaults 90 10

啟動和關閉順序為90,級別預設

update-rc.d defaults 90

[^1]: 這裡 N 是指表示級別的數字
使用者啟動專案一般在 /etc/rc2.d 中。
可以使用 ls |grep item來查詢item是否在啟動項中。

相關文章