Dịch vụ so với Systemctl

Dich Vu So Voi Systemctl



Dịch vụ và systemctl là hai tiện ích dòng lệnh được sử dụng để quản lý các dịch vụ hệ thống. Cả hai tiện ích đều thuộc về hai hệ thống init khác nhau, SysV và systemd tương ứng.

Trong hướng dẫn này, tôi sẽ thảo luận về các lệnh dịch vụ và systemctl cũng như chúng khác nhau như thế nào khi nói đến quản lý dịch vụ.

Trước khi đi xa hơn, trước tiên chúng ta hãy tìm hiểu hai hệ thống init Linux phổ biến; Hệ thống và Hệ thốngd.







Hệ thống V so với Systemd

Hệ thống init trên Linux là một phần quan trọng của quá trình khởi động. Đây là quá trình đầu tiên với PID 1 bắt đầu khi hệ thống khởi động. Sau đó nó bắt đầu các tiến trình có trong tệp inittab. System V cũng biết SysV và systemd là các hệ thống init Linux phổ biến.



Các SysV là một hệ thống init cũ hơn và là một phần của các bản phân phối Unix và Linux cũ hơn. Nó quản lý các dịch vụ hệ thống bằng cách sử dụng các tập lệnh nằm trong /etc/init.d. Một số bản phân phối Linux vẫn đang sử dụng SysV là Slackware, Gentoo và antiX Linux.



Mặt khác, hệ thống ra mắt vào năm 2010 và nhanh chóng được nhiều bản phân phối Linux áp dụng. Hệ thống init systemd quản lý các dịch vụ thông qua các tệp .service. Hiện tại nó là một phần của tất cả các bản phân phối Linux hiện đại, bao gồm Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu và các bản phân phối dựa trên các hệ điều hành này.





Systemd hiệu quả hơn nhiều so với SysV. Nó cung cấp thời gian khởi động nhanh hơn, quản lý dịch vụ hiệu quả và xử lý sự phụ thuộc.

Cả hai hệ thống init đều cung cấp hai tiện ích dòng lệnh để quản lý dịch vụ.



Trong các phần sau của hướng dẫn, tôi sẽ thảo luận về hai tiện ích này.

lệnh dịch vụ

Các dịch vụ lệnh là một trình bao bọc tập lệnh chạy các tập lệnh nằm trong /etc/init.d danh mục. Nó được phát triển để quản lý dịch vụ của SysV hoặc Hệ thống V hệ thống khởi tạo. Các bản phân phối Linux sử dụng SysV làm hệ thống init sử dụng dịch vụ lệnh quản lý dịch vụ.

Cú pháp chung để sử dụng lệnh dịch vụ được đưa ra dưới đây.

dịch vụ [ Tên dịch vụ ] [ hoạt động ]

Để biết trạng thái của các dịch vụ do Hệ thống V kiểm soát, hãy sử dụng lệnh dịch vụ với –trạng thái-tất cả lựa chọn.

dịch vụ --trạng thái-tất cả

Các + cho biết dịch vụ đang chạy và cho thấy dịch vụ không hoạt động.

Trạng thái hiện tại của bất kỳ dịch vụ cụ thể nào cũng có thể được kiểm tra bằng cách đề cập đến tên dịch vụ.

dịch vụ [ Tên dịch vụ ] trạng thái

Một số lệnh dịch vụ hữu ích khác như khởi động, dừng và khởi động lại dịch vụ được liệt kê bên dưới.

dịch vụ [ Tên dịch vụ ] bắt đầu

dịch vụ [ Tên dịch vụ ] dừng lại

dịch vụ [ Tên dịch vụ ] khởi động lại

Lệnh dịch vụ này cung cấp khả năng kiểm soát cơ bản để quản lý dịch vụ. Hầu hết các bản phân phối Linux đã thay thế SysV làm hệ thống init, nhưng do tính tương thích cũ nên lệnh này vẫn có trong nhiều bản phân phối Linux mới nhất.

Lệnh systemctl

Sử dụng lệnh systemctl, bạn có thể kiểm soát các dịch vụ trong /lib/systemd/system /etc/systemd/system thư mục. Nó là một thành phần của systemd; một hệ thống init được tìm thấy trong phần lớn các bản phân phối Linux hiện đại.

Systemctl được thiết kế để cung cấp nhiều quyền kiểm soát hơn đối với việc quản lý dịch vụ hệ thống. Cú pháp chung để sử dụng lệnh systemctl được đưa ra dưới đây:

hệ thống [ lựa chọn ] [ Tên dịch vụ ]

Để kiểm tra trạng thái của tất cả các dịch vụ, hãy sử dụng lệnh sau.

đơn vị danh sách systemctl --kiểu =dịch vụ --tất cả

Đối với việc sử dụng dịch vụ cụ thể:

trạng thái hệ thống [ Tên dịch vụ ]

Các lệnh để quản lý cơ bản dịch vụ bằng systemctl được đưa ra dưới đây:

hệ thống cho phép [ Tên dịch vụ ]

bắt đầu hệ thống [ Tên dịch vụ ]

dừng hệ thống [ Tên dịch vụ ]

vô hiệu hóa systemctl [ Tên dịch vụ ]

khởi động lại hệ thống [ Tên dịch vụ ]

Lệnh systemctl còn vượt xa hơn khi kiểm soát các dịch vụ. Bảng dưới đây chứa một số lệnh systemctl nâng cao.

đường dẫn danh sách Để liệt kê đường dẫn của tất cả các dịch vụ trong bộ nhớ
đang hoạt động [service_name] Để kiểm tra xem dịch vụ hoặc thiết bị có chạy hay không
danh sách phụ thuộc [service_name] Để in danh sách phụ thuộc của dịch vụ được chỉ định
thiết lập lại không thành công Để thiết lập lại các dịch vụ không tải được do một số điều bất thường
mặt nạ [service_name] Để vô hiệu hóa dịch vụ và làm cho nó không thể khởi động
lấy mặc định Để in mức chạy hoặc mục tiêu mặc định
đặt mặc định [mục tiêu] Để đặt mức chạy hoặc mục tiêu mặc định
đang chạy hệ thống Để kiểm tra trạng thái hoạt động của hệ thống
khởi động lại Để khởi động lại hệ thống
tắt nguồn Để tắt hệ thống

Tại sao vẫn có Lệnh dịch vụ trong Bản phân phối Linux với Systemd init System

Lệnh dịch vụ vẫn là một phần của nhiều bản phân phối Linux vì nó là tập lệnh bao bọc và trừu tượng hóa hệ thống init cơ bản, cho dù đó là SysV hay systemctl. Ví dụ: trên Ubuntu, lệnh dịch vụ sẽ chuyển hướng đến systemctl.

Phần kết luận

Dịch vụ và systemctl lần lượt là hai tiện ích dòng lệnh thuộc hệ thống init SysV và systemd. Mặc dù lệnh dịch vụ đã được thay thế trong các bản phân phối Linux hiện đại, nhưng nó vẫn là công cụ chính để duy trì các dịch vụ do tính đơn giản và khả năng tương thích. Mặt khác, systemctl là một phần của tất cả các bản phân phối Linux hiện tại và cung cấp các tùy chọn nâng cao để quản trị dịch vụ.