Giới thiệu về Chkconfig
Chkconfig là công cụ dòng lệnh dùng để quản lý các dịch vụ hệ thống (service). Dịch vụ hệ thống là những chương trình tự động khởi động cùng với hệ thống và tự động dừng khi hệ thống tắt.
Chkconfig có thể cập nhật (khởi động hoặc dừng) và truy vấn thông tin mức độ chạy (run level) của dịch vụ hệ thống. Đơn giản hơn, Chkconfig là công cụ dòng lệnh duy trì các thư mục /etc/rc[0-6].d.
Các chức năng chính của Chkconfig
Chkconfig cung cấp 5 chức năng chính:
1. Thiết lập thông tin khởi động dịch vụ
# chkconfig ten_dich_vu on/off/reset
Các tùy chọn on, off, reset được dùng để thay đổi thông tin khởi động của dịch vụ. On có nghĩa là bật, off là tắt, và reset là đặt về mặc định. Theo mặc định, on và off chỉ có hiệu lực với mức độ chạy 2, 3, 4, 5, trong khi reset có hiệu lực với tất cả các mức độ chạy.
Ví dụ:
# chkconfig apache on
2. Thiết lập mức độ chạy cho dịch vụ
# chkconfig --level levels
Ví dụ:
# chkconfig --level 2345 apache on
Lệnh này chỉ định mức độ chạy là 2, 3, 4, 5. Các mức độ chạy được định nghĩa như sau:
- Mức 0: Tắt máy
- Mức 1: Chế độ người dùng đơn
- Mức 2: Chế độ đa người dùng không kết nối mạng
- Mức 3: Chế độ đa người dùng có kết nối mạng
- Mức 4: Không sử dụng
- Mức 5: Chế độ đa người dùng có giao diện đồ họa
- Mức 6: Khởi động lại
3. Thêm dịch vụ
# chkconfig --add ten_dich_vu
Lệnh này thêm một dịch vụ vào danh sách quản lý của chkconfig và tạo các liên kết biểu tượng (symbolic links) tương ứng trong thư mục /etc/rc[0-6].d.
4. Xóa dịch vụ
# chkconfig --del ten_dich_vu
Lệnh này xóa dịch vụ khỏi danh sách quản lý của chkconfig và xóa tất cả các liên kết biểu tượng liên quan trong thư mục /etc/rc[0-6].d.
5. Liệt kê thông tin khởi động của dịch vụ
# chkconfig --list [ten_dich_vu]
Nếu không chỉ định tên dịch vụ, lệnh này sẽ liệt kê thông tin của tất cả các dịch vụ.
Mỗi dịch vụ ở mỗi mức độ chạy sẽ có một tập lệnh khởi động và dừng. Khi chuyển đổi mức độ chạy, init sẽ không khởi động lại các dịch vụ đã đang chạy, cũng không dừng lại các dịch vụ đã đang dừng.
Ví dụ thực tế
1. Liệt kê trạng thái khởi động của tất cả dịch vụ
$ chkconfig --list
postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nginx 0:off 1:off 2:off 3:off 4:off 5:off 6:off
firewalld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
...
xinetd based services:
telnet: off
ftp: off
2. Thêm dịch vụ mariadb
$ chkconfig --add mariadb
3. Xóa dịch vụ mariadb
$ chkconfig --del mariadb
4. Thiết lập mức độ chạy cho dịch vụ mariadb
$ chkconfig --level 2345 mariadb on
5. Liệt kê thông tin khởi động của dịch vụ mariadb
$ chkconfig --list mariadb
mariadb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6. Thiết lập thông tin khởi động mặc định
$ chkconfig mariadb on
Lệnh này thiết lập mức độ chạy mặc định là 2, 3, 4, 5, thực chất có tác dụng tương tự như lệnh ở trên.
Thông số trong file cấu hình:
#chkconfig: 2345 20 80
Trong đó, 2345 biểu thị hệ thống sẽ khởi động dịch vụ này ở mức độ 2, 3, 4 hoặc 5. 20 là mức ưu tiên khởi động, và 80 là mức ưu tiên dừng. Nếu mức ưu tiên khởi động được đặt quá thấp (ví dụ 0), dịch vụ có thể không khởi động thành công vì các dịch vụ mạng mà nó phụ thuộc có thể chưa được khởi động.