[Linux] Hướng dẫn enable/disable dịch vụ tự động chạy khi boot hệ thống CentOS/RHEL 7

Mình sẽ hướng dẫn các bạn cách kích hoạt (enable) hoặc tắt (disable) một dịch vụ tự động start ở thời điểm khởi động hệ thống (start on boot) RHEL hay CentOS 7.

Đối với hệ thống RHEL/CentOS 7 thì bạn sẽ điều khiển và quản lý dịch vụ thông qua chương trình ‘systemctl‘, một chương trình quản lý dịch vụ hệ thống.

Để kiểm tra xem một dịch vụ có được set tự động khởi động lên vào thời điểm hệ thống vừa mới boot hay không thì bạn sử dụng lệnh ‘systemctl status‘ và kiểm tra phần ‘Loaded‘ của output xuất ra.

# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
...

 
Bạn để ý ở cuối dòng ‘Loaded:‘ , nếu là chữ ‘enabled‘ tức là dịch vụ này đã được kích hoạt khởi động dịch vụ vào thời điểm hệ thống boot lên; nếu là chữ ‘disabled‘ tức là dịch vụ này hiện chưa được kích hoạt.

Contents

 
Kích hoạt chạy dịch vụ khi boot hệ thống RHEL/CentOS 7

Muốn kích hoạt dịch vụ tự động khởi động mỗi khi boot hệ thống RHEL/CentOS 7 rất là đơn giản, chỉ cần chạy lệnh ‘systemctl enable‘ cùng tên dịch vụ là được.

# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
...

 
Một symlink sẽ khởi tạo trong thư mục /etc/systemd/system/* liên quan đến tên dịch vụ.

 
Tắt dịch vụ khi boot hệ thống RHEL/CentOS 7

Để tắt tính năng kích hoạt dịch vụ khi boot hệ thống ta chỉ cần đơn giản chạy chương trình ‘systemctl disable‘ tên dịch vụ đó là xong. Chương trình ‘systemctl‘ sẽ xoá bỏ symlink liên quan đến dịch vụ đó ở thư mục /etc/systemd/system/* . Sau cùng dịch vụ sẽ không còn khởi động mỗi khi boot hệ thống lên.

# systemctl disable httpd
rm '/etc/systemd/system/multi-user.target.wants/httpd.service'
# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
...

Kiểm tra dịch vụ khởi động thất bại khi boot system CentOS 7/RHEL 7

Systemctl cho phép liệt kê thông tin các dịch vụ đã khởi động thất bại khi hệ thống boot lên, giúp ta kiểm tra lại vấn đề với script start dịch vụ đó.

# systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
php-fpm.service loaded failed failed The PHP FastCGI Process Manager

LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.

 
Như ở ví dụ trên, dịch vụ ‘php-fpm‘ đã khởi động thất bại khi hệ thống boot lên. Có thể trong trường hợp này bạn muốn kiểm tra lại script start dịch vụ xem sao.

Nội dung như vậy là xong rồi, có gì các bạn cứ bình luận ở dưới nhé.

Previous article[Ebook] Kali Linux – Assuring Security by Penetration Testing – Download PDF
Next article[DirectAdmin] Hướng dẫn nâng cấp phiên bản dịch vụ MySQL/MariaDB trên Direct Admin
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !