chkconfig 核心語法
chkconfig [--add|--del|--list] [服務名]
chkconfig [--level <等級代碼>] <服務名>
運行等級代碼對照
| 等級 | 含義 |
| 0 | 關機 |
| 1 | 單用戶模式 |
| 2 | 無網路多用戶字元模式 |
| 3 | 有網路多用戶字元模式 |
| 4 | 保留 |
| 5 | 圖形介面多用戶模式 |
| 6 | 重啟 |
常用操作範例
| 目的 | 指令 |
| 列出所有服務啟動狀態 | chkconfig --list |
| 查看特定服務 (如 mysqld) | chkconfig --list mysqld |
| 新增服務納入管理 | chkconfig --add httpd |
| 移除服務管理 | chkconfig --del httpd |
| 設定服務在等級 2,3,4,5 啟動 | chkconfig --level 2345 httpd on |
| 設定 mysqld 在等級 3,5 啟動 | chkconfig --level 35 mysqld on |
| 設定 mysqld 所有多用戶等級啟動 | chkconfig mysqld on (預設 2345) |
新增自訂服務步驟 (以 mysqld 為例)
- 啟動腳本放置
/etc/init.d/ (CentOS 實為 /etc/rc.d/init.d/,/etc/init.d 為連結)。
- 腳本須含 chkconfig 註釋:
# chkconfig: 2345 20 80 (等級 啟動優先權 關閉優先權)
# description: MySQL Server
chkconfig --add mysqld 產生 /etc/rc[0-6].d/ 下的 S/K 連結。
chkconfig --level 35 mysqld on 設定預設啟動等級。
服務啟停兩種方式
| 方式 | 指令 | 原理 |
| 直接呼叫腳本 | /etc/init.d/mysqld start|stop|restart|status | 直呼啟動腳本 |
| service 命令 | service mysqld start|stop|restart | service 為封裝腳本,解析參數後轉呼 /etc/init.d/ 對應腳本 |
關鍵目錄
/etc/sysconfig/:服務環境變數初始化設定。
/var/lib/:服務資料目錄 (如 /var/lib/mysql 存放資料庫檔案)。
注意: CentOS 7+ 採用 systemd (systemctl),chkconfig 僅相容舊版服務,新服務請撰寫 .service 單元檔。