1.命令簡介
chkconfig 命令用于更新和查詢系統(tǒng)服務的運行等級信息。它可查詢操作系統(tǒng)在每一個運行等級中會自動執(zhí)行哪些系統(tǒng)服務,包括各類常駐服務,比如 httpd、sshd、mysqld 等。
chkconfig 實際上是通過改變七個不同運行等級目錄 /etc/rc[0-6].d 中服務腳本的符號鏈接,來設置操作系統(tǒng)在每一個運行等級中會執(zhí)行哪些系統(tǒng)服務。chkconfig 不是用于立即啟動或停止某一個服務,這一點與 service 不同。
chkconfig 有五個功能:
(1)添加新的服務供 chkconfig 管理;
(2)從 chkconfig 管理服務列表中刪除服務;
(3)列出 chkconfig 管理的所有服務的當前啟動信息;
(4)更改服務的啟動信息;
(5)檢查特定服務的啟動狀態(tài)。
2.命令格式
chkconfig
service [OPTIONS] SERVICENAME
沒有任何選項的 chkconfig 或跟選項 --list 將顯示所有服務及其當前配置的列表。
當 chkconfig 后只跟服務名時,會檢查服務是否配置為在當前運行級別自啟動,如果是,則 chkconfig 返回 true,否則返回 false。–level 選項可用于讓 chkconfig 查詢其它運行級別而不是當前運行級別下的配置。
如果在服務名稱之后指定了 on、off、reset 或 resetpriorities 之一,chkconfig 將更改指定服務的啟動信息。on 和 off 標志分別導致服務在正在更改的運行級別中設置為啟動或停止。reset 標志將服務的所有運行級別的開關狀態(tài)重置為相關 init 腳本中指定的值,而 resetpriorities 標志將服務的啟動/停止優(yōu)先級重置為 init 腳本中指定的值。默認情況下,on 和 off 選項僅影響運行級別 2、3、4 和 5,而 reset 和 resetpriorities 影響所有運行級別。--level 選項可用于指定受影響的運行級別。
3.選項說明
--level LEVELS
指定操作應屬于的運行級別。0 到 6 組成的數(shù)字串。例如,-level 35 指定運行級別 3 和 5
--no-redirect
如果系統(tǒng)使用 systemd 作為系統(tǒng)的啟動進程,chkconfig 將命令轉發(fā)給 systemd。此選項將關閉到 systemd 的重定向,并且僅在 /etc/rc[0-6].d 中的符號鏈接上操作。此選項僅在 on、off 或沒有向服務傳遞命令(檢查啟用)時有效
--add SERVICENAME
添加一個新服務供 chkconfig 管理
--del SERVICENAME
將從 chkconfig 管理中刪除該服務,并刪除 /etc/rc[0-6].d 中與其相關的任何符號鏈接
--override SERVICENAME
更改服務配置
--list [SERVICENAME]
列出 chkconfig 所知的所有服務在不同運行等級下的啟動狀態(tài)。如果指定 SERVICENAME,則只列出具體的服務的啟動狀態(tài)
4.常用示例
(1)列出所有的系統(tǒng)服務。
chkconfig
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
bootlocal 0:off 1:off 2:off 3:on 4:off 5:off 6:off
irqaffinity 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
qemu-ga 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rename_netifs 0:off 1:off 2:off 3:on 4:off 5:off 6:off
(2)將 Apache Web 服務器配置為在每次系統(tǒng)啟動時啟動。
當您成功地使用 chkconfig 啟用服務時,該命令不提供任何確認消息。
(3)設置 network 在運行級別為 2、3、4、5 的情況下都是關閉狀態(tài),即不啟動。
chkconfig network off
# 或
chkconfig --level 2345 network off
(4)查看 network 服務的自啟動狀態(tài)。
chkconfig --list network
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
5.拓展知識
5.1 注冊服務到 chkconfig
每個被 chkconfig 管理的服務需要在對應的 /etc/rc.d/init.d 下的管理腳本加上兩行或者更多行的注釋。第一行告訴 chkconfig 缺省啟動的運行級以及啟動和停止的優(yōu)先級。如果某服務缺省不在任何運行級啟動,那么使用 - 代替運行級。第二行對服務進行描述,可以用 \ 跨行注釋。例如 /etc/rc.d/init.d/network 中的注釋:
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
# start at boot time.
其中第一行表示運行等級在 2、3、4 和 5,啟動優(yōu)先級為 10,停止優(yōu)先級為 90。第二行和第三行為服務 network 的描述。
5.2 Linux 系統(tǒng)的 7 個運行級別
運行級別是操作系統(tǒng)當前正在運行的功能級別,它讓一些程序在一個級別啟動,而在另外一個級別的時候不啟動。Linux 系統(tǒng)一般使用 7 個級別。
0 停機狀態(tài)。系統(tǒng)默認運行級別不能設為 0,否則不能正常啟動
1 單用戶模式,root權限,用于系統(tǒng)維護,禁止遠程登陸
2 無網(wǎng)絡的多用戶模式
3 有網(wǎng)絡的多用戶模式
4 系統(tǒng)未使用,保留
5 圖形化界面
6 系統(tǒng)正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動
默認的運行級別可以在文件 /etc/inittab 查看。一般自用的 Linux 默認登錄等級為 5,即開機進入圖形用戶界面,遠程登錄的運行等級為 3,進入命令行交互界面。
運行級別的原理:
(1)在目錄 /etc/rc.d/init.d 下有許多服務管理腳本,每個服務被稱為 service;
(2)在 /etc/rc.d 下有 7 個名為 rcN.d 的目錄,對應系統(tǒng)的 7 個運行級別;
(3)rcN.d 目錄下都是一些符號鏈接文件,這些鏈接文件都指向 init.d 目錄下的 service 腳本文件,命名規(guī)則為K+nn+服務名或S+nn+服務名,其中 nn 為兩位數(shù)字。
(4)系統(tǒng)會根據(jù)指定的運行級別進入對應的 rcN.d 目錄,并按照文件名順序檢索目錄下的鏈接文件:
對于以 K 開頭的文件,系統(tǒng)將終止對應的服務
對于以 S 開頭的文件,系統(tǒng)將啟動對應的服務
(5)查看運行級別用:runlevel;
(6)進入其它運行級別用:(sudo) init N;
(7)另外 init 0 為關機,init 6 為重啟系統(tǒng)。
另外,當使用 runlevel 查看運行級別時,結果會顯示前一次的運行級別和現(xiàn)在的運行級別,如果前次的運行級別為 N,那么說明前次沒有運行級別(可能剛剛 power on)。
以上就是Linux chkconfig 命令的使用的詳細內(nèi)容,更多關于Linux chkconfig 命令的資料請關注腳本之家其它相關文章!