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