Lệnh update-rc.d trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh update-rc.d trong Linux để quản lý việc khởi động tự động của các service khi hệ thống khởi động. Bạn sẽ hiểu mục đích của lệnh update-rc.d, cấu hình các service để khởi động tự động khi boot, và quản lý độ ưu tiên khởi động của service. Lab này bao gồm các ví dụ thực tế và cú pháp cơ bản của lệnh update-rc.d, đặc biệt hữu ích khi bạn cần đảm bảo rằng một service khởi động tự động khi hệ thống boot hoặc khi bạn muốn thay đổi thứ tự khởi động của các service.

Hiểu Mục Đích của Lệnh update-rc.d

Trong bước này, bạn sẽ tìm hiểu về mục đích và cách sử dụng lệnh update-rc.d trong Linux. Lệnh update-rc.d được sử dụng để quản lý việc khởi động tự động của các service khi hệ thống boot. Nó cho phép bạn bật, tắt hoặc sửa đổi độ ưu tiên khởi động của các system service.

Lệnh update-rc.d đặc biệt hữu ích khi bạn cần đảm bảo rằng một service khởi động tự động khi hệ thống boot, hoặc khi bạn muốn thay đổi thứ tự khởi động của các service.

Hãy bắt đầu bằng cách hiểu cú pháp cơ bản của lệnh update-rc.d:

sudo update-rc.d [service_name] defaults [priority]

Ở đây, [service_name] là tên của service bạn muốn quản lý và [priority] là độ ưu tiên khởi động cho service đó. Tham số defaults cho update-rc.d biết sử dụng các runlevel mặc định (2, 3, 4 và 5) cho service.

Ví dụ đầu ra:

sudo update-rc.d nginx defaults

Lệnh này sẽ cho phép service nginx khởi động tự động khi hệ thống boot, sử dụng các runlevel và độ ưu tiên khởi động mặc định.

Cấu Hình Service để Khởi Động Tự Động Khi Boot

Trong bước này, bạn sẽ học cách sử dụng lệnh update-rc.d để cấu hình các service khởi động tự động khi hệ thống boot.

Hãy bắt đầu bằng cách kiểm tra trạng thái hiện tại của service nginx. Chúng ta có thể sử dụng lệnh service để làm điều này:

sudo service nginx status

Ví dụ đầu ra:

nginx is not running

Như bạn thấy, service nginx hiện không chạy. Hãy bật nó để khởi động tự động khi boot bằng lệnh update-rc.d:

sudo update-rc.d nginx defaults

Lệnh này sẽ tạo các liên kết tượng trưng cần thiết trong thư mục /etc/rc*.d/ để đảm bảo rằng service nginx khởi động tự động khi hệ thống boot.

Để xác minh rằng service nginx hiện đã được bật để khởi động khi boot, chúng ta có thể kiểm tra nội dung của thư mục /etc/rc2.d/:

ls -l /etc/rc2.d/ | grep nginx

Ví dụ đầu ra:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx

Đầu ra cho thấy service nginx đã được thêm vào thư mục /etc/rc2.d/ với độ ưu tiên khởi động là 20.

Bây giờ, hãy thử khởi động lại hệ thống và kiểm tra lại trạng thái của service nginx:

sudo reboot

Sau khi hệ thống đã khởi động lại, hãy đăng nhập lại và kiểm tra trạng thái service nginx:

sudo service nginx status

Ví dụ đầu ra:

nginx is running

Như bạn thấy, service nginx hiện đang chạy và đã được cấu hình để khởi động tự động khi hệ thống boot.

Quản Lý Độ Ưu Tiên Khởi Động Service với update-rc.d

Trong bước này, bạn sẽ học cách quản lý độ ưu tiên khởi động của các service bằng lệnh update-rc.d.

Độ ưu tiên khởi động của một service xác định thứ tự mà các service được khởi động trong quá trình boot. Điều này rất quan trọng khi bạn có nhiều service phụ thuộc vào nhau hoặc cần được khởi động theo một thứ tự cụ thể.

Hãy bắt đầu bằng cách thêm một service khác vào hệ thống của chúng ta, service syslog. Chúng ta có thể bật nó để khởi động tự động khi boot bằng lệnh update-rc.d:

sudo update-rc.d rsyslog defaults

Bây giờ, hãy kiểm tra độ ưu tiên khởi động của các service nginxrsyslog:

ls -l /etc/rc2.d/ | grep -E 'nginx|rsyslog'

Ví dụ đầu ra:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx
lrwxrwxrwx 1 root root 16 Apr 11 09:42 S19rsyslog -> ../init.d/rsyslog

Như bạn thấy, service nginx có độ ưu tiên khởi động cao hơn (20) so với service rsyslog (19). Điều này có nghĩa là service nginx sẽ khởi động trước service rsyslog trong quá trình boot.

Hãy thay đổi độ ưu tiên khởi động của service rsyslog để nó khởi động trước service nginx:

sudo update-rc.d rsyslog defaults 18

Số 18 ở cuối lệnh đặt độ ưu tiên khởi động cho service rsyslog thành 18, thấp hơn độ ưu tiên 20 của service nginx.

Bây giờ, hãy kiểm tra lại độ ưu tiên khởi động:

ls -l /etc/rc2.d/ | grep -E 'nginx|rsyslog'

Ví dụ đầu ra:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S18rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx

Như bạn thấy, service rsyslog hiện có độ ưu tiên khởi động thấp hơn (18) so với service nginx (20), đảm bảo rằng service rsyslog khởi động trước service nginx trong quá trình boot.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích và cách sử dụng lệnh update-rc.d trong Linux, được sử dụng để quản lý việc khởi động tự động của các service khi hệ thống boot. Bạn đã khám phá cách bật các service để khởi động tự động khi boot, cũng như cách quản lý độ ưu tiên khởi động của các service bằng lệnh update-rc.d. Lab này cung cấp các ví dụ thực tế và hướng dẫn từng bước để giúp bạn hiểu và áp dụng các khái niệm này một cách hiệu quả.

400+ câu lệnh phổ biến trong Linux