Ubuntu/Debian與REDHAT系統啓動腳本之對照

Ubuntu/Debian與REDHAT系統啓動腳本之對照

作者: (轉載自 mylxiaoyi)   
2007-03-04
Ubuntu 出名了,但用慣了RH(fedora/redhat/centos),剛開始還真是有些不順手。對於我來說最大的影響就是服務配置。在 Ubuntu/Debian 下並沒有 chkconfig,要是手動編輯 rc.*** 就太煩人了不是?還好……有 update-rc.d,接着往下看……

**************2007-4-22 加入*************
新近發現一個“sysv-rc-conf ”,用法極似“chkconfig ”!
安裝簡單:
sudo apt-get install sysv-rc-conf

另外,還有個類似的是“rcconf ”。
******************************************
(注:本文下面部分完全轉載自mylxiaoyi 的"Debian系統啓動腳本 ",對文字上明顯的失誤稍有修訂)

Debian GNU/Linux使用SysV模塊作爲系統初始腳本。與RH一樣,Debian使用一個擴展的SysV模塊,而Slackware主要是基於BSD的,併爲了使用SysV模塊而寫了幾個方便的腳本。

定位SysV目錄
Debian GNU/Linux,與大多數使用SysV模塊的系統一樣,將相關的目錄存放在/etc目錄之下。也就是說,SysV目錄/etc/init.d是腳本自 身,而/etc/rc1.d,/etc/rc2.d直到/etc/rc6.d是特殊運行級別的目錄。而管理所有這些的腳本爲/etc/rc.d/rc。

然而RH7.2,是將SysV目錄全部放在/etc/rc.d目錄之下。也就是就說,RH使用/etc/rc.d/init.d,而不是/etc/init.d。爲了兼容性,RH創建了一些由/etc指向/etc/rc.d下相關目錄的鏈接。

使用Debian工具進行工作
RH包含了一些用於自動管理SysV初始腳本過程的工具,也就是chkconfig和service。Debian幷包含這些工具,但是卻提供相似的管理工具:update-rc.d與invoke-rc.d。

使用update-rc.d
Debian 的update-rc.d與RH的chkconfig工具相類似。然而chkconfig是一個二進制程序,而update-rc.d是一個Perl腳 本。這些工具有不同的命令行選項,但是卻執行類似的功能。下表列出了update-rc.d的一些用法。如果要查看完整的信息,我們可以查閱相關的和冊 頁。

命令                                        功能
update-rc.d -f <service> remove            從所有的運行級別配置目錄中是刪除指定的服務
update-rc.d <service> start <order> <runlevels>    配置服務在運行級別列表中按指定的順序啓動
update-rc.d <service> stop <order> <runlevels>    配置服務在運行級別列表中指定的順序停止

update -rc.d與RH的chkconfig之間最大的不同就在於update-rc.d是要設置所以指向/etc/init.d目錄下服務腳本的運行級別鏈 接,而chkconfig是要每一個運行級別單獨配置服務。從本質上來說,這也就意味着每次我們使用update-rc.d改變一個運行級別,我們就不得 不改變所有的。例如,下面的命令序列與命令chkconfig -level 2345 inetd off的作用相同:
$ update-rc.d -f inetd remove
$ update-rc.d inetd stop 20 0 1 2 3 4 5 6 .

第 一個命令移除了所有的指向/etc/init.d/inetd服務腳本的運行級別鏈接,-f標誌將會使得update-rc.d即使在inetd腳本本身 已經存在的情況仍然進行相應的處理。第二個命令在每一個運行級別創建了一個服務級別爲20的停止腳本。例如,這會創建一個 /etc/rc3.d/K20inetd的符號鏈接來禁止運行級別3中inetd的運行。(在這裏我們要注意的是我們要顯示的添加reboot與 shutdown運行級別,即0和6,僅管其中所有的服務都會被設置成爲“stop“)。作爲另外的一個例子,下面所顯示的命令將會在運行級別3到5允許 inetd的運行,而在其他的運行級別中則被禁止:
$ update-rc.d -f inetd remove
$ update-rc.d inetd start 20 3 4 5 . stop 20 0 1 2 6 .

Debian的update-rc.d最初看起來會叫人有一些迷惑,但是一旦我們明白後,就會發現他可以非常出色地完成我們的工作。

使用 invoke-rc.d
Debian 下與RH的service命令作用等同的命令爲invoke-rc.d。這兩個命令在大多數情況下的作用是完全相同的。例如,service inetd start與invoke-rc.d inetd start有相同的作用(啓動inetd服務,相應的停止服務的命令爲invoke-rc.d inetd stop)。invoke-rc.d命令也有一個額外的我們可以深入研究的命令參數,但是一般來說這兩個命令是相同的。

/etc/inittab 文件中的不同
主要配置系統初始化過程的文件是/etc/inittab。這個文件管理在系統啓動時的腳本。下面的是與其他的發行版本中的inittab文件所不同的幾個地方:

1 Debian的默認運行級別是2.
2 Debian並不會在/etc/inittab文件中中配置X Window系統顯示管理器。
3 運行級別2與3是相同的,而運行級別4與5是相同的。
4 運行級別4與5只會運行一個虛擬終端,而運行級別2與3卻會運行6個。
 
發佈了27 篇原創文章 · 獲贊 0 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章