Sự khác biệt giữa service và systemctl trong Linux

service và systemctl đều là các lệnh quan trọng và cực kỳ giống nhau trong Linux. Chúng giống nhau đến mức nhiều người thắc mắc chúng có gì khác nha và liệu bạn có thể sử dụng hai lệnh thay thế cho nhau hay không.

Biết rõ hơn về service và systemctl sẽ cho phép bạn làm việc với chúng một cách liền mạch.

Lệnh service trong Linux là gì?

Kiểm tra trạng thái tường lửa bằng lệnh service
Kiểm tra trạng thái tường lửa bằng lệnh service

Trong Linux, lệnh service là một wrapper script cho phép người dùng dễ dàng cấu hình và tương tác với các service hệ thống. Nó có trước systemd và chủ yếu hoạt động với các script được tìm thấy trong /etc/init.d.

Mặc dù systemctl đã vượt qua phần lớn ý nghĩa trước đây của service, nhưng nó vẫn tiếp tục duy trì sự liên quan thông qua nhiều tính năng kế thừa.

Sự thay đổi giữa các hệ thống khởi tạo có liên quan - SysVinit sang systemd - đã gây tranh cãi, nhưng việc đặt ra những thách thức đối với chức năng của hệ thống khởi tạo ban đầu khiến điều đó trở nên cần thiết.

systemd bắt đầu các service song song thay vì theo trình tự nối tiếp, khiến thời gian khởi động của nó nhanh hơn SysVinit - và nó cung cấp khả năng kiểm soát tinh vi hơn một chút đối với các daemon hệ thống thông qua command-line interface (CLI).

Lệnh systemctl trong Linux là gì?

Kiểm tra trạng thái của tường lửa bằng systemctl trong terminal
Kiểm tra trạng thái của tường lửa bằng systemctl trong terminal

Giống như service, systemctl là một lệnh cực kỳ linh hoạt cho phép bạn bật, load lại, bắt đầu, dừng và kiểm tra trạng thái của các service đang chạy trên hệ thống Linux.

systemctl đóng vai trò như một interface mạnh mẽ và dễ sử dụng để cấu hình các file trong systemd - ví dụ, chỉ cần một đến hai lệnh để vô hiệu hóa một service khi khởi động bằng systemctl.

systemctl tương thích ngược với hệ thống khởi tạo, SysVinit, chủ yếu được sử dụng với service. systemctl không đóng vai trò là tùy chọn kế nhiệm trực tiếp cho service, nhưng nó linh hoạt hơn nhiều về các công cụ mà nó cung cấp để quản lý những service hệ thống.

Bạn có thể hoàn thành các tác vụ như tạo mask hoặc vô hiệu hóa một service chỉ trong một hoặc hai dòng.

Sự khác biệt giữa service và systemctl

Người đàn ông đồng thời sử dụng máy tính xách tay và máy tính để bàn

service và systemctl phần lớn phục vụ cùng một mục đích. Nhiều điểm tương đồng giữa chúng đã được cố ý đưa vào để cho phép người dùng chuyển đổi liền mạch hơn từ service sang systemctl.

Tuy nhiên, có một số khác biệt giữa hai lệnh mà bạn nên biết khi bắt đầu làm việc với hệ thống khởi tạo trên Linux.

1. Các hệ thống khởi tạo khác nhau

Sự khác biệt đáng kể nhất giữa service và systemctl là chúng thuộc về các hệ thống khởi tạo khác nhau. service thuộc về SysVinit (System V Init), còn được gọi là tiến trình khởi tạo Linux cổ điển.

systemctl thuộc về systemd, sự kế thừa của SysVinit và tiến trình khởi tạo hiện đại được sử dụng trên nhiều hệ thống Linux.

Vì service và systemctl là một phần của các tiến trình khởi tạo khác nhau nên chúng hoạt động trên những file hệ thống khởi tạo trong các thư mục khác nhau. service hoạt động với các file hệ thống khởi tạo có trong /etc/init.d, trong khi systemctl hoạt động với các file hệ thống khởi tạo có trong /lib/systemd.

Nói chung, hệ thống khởi tạo mà bạn sẽ gặp trên các bản cài đặt Linux sẵn dùng là systemd - vì vậy bạn sẽ muốn làm quen với việc sử dụng systemctl để tương tác với nó.

Nếu bạn có ý định làm việc với các hệ thống có trước hoặc trùng với bản phát hành của systemd vào năm 2010, thì việc làm quen với việc sử dụng lệnh service cũng không hại gì.

2. Khả năng tương thích

service tiếp tục là một lệnh cực kỳ hữu ích xét về mặt tương thích - với tư cách là một lệnh wrapper, nó có khả năng chuyển hướng đến trình quản lý service được sử dụng trên các hệ thống khác nhau. Bạn nên lập kế hoạch học và biến nó thành một phần trong kho vũ khí của mình nếu bạn sẽ làm việc với nhiều hệ thống Linux khác nhau.

3. Các chức năng cơ bản

Một điểm khác biệt chính giữa systemctl và service nằm ở cách chúng hoạt động. service là một lệnh cấp cao chuyển hướng đến trình quản lý service cơ bản được sử dụng trên một hệ thống cụ thể, nghĩa là nó khá linh hoạt giữa các hệ thống. Nó có thể chuyển hướng đến /etc/init.d, upstart hoặc thậm chí systemctl. Trong khi đó, các lệnh systemctl tương tác trực tiếp với systemd.

4. Khả năng

Xét về những gì bạn có thể đạt được, có thể nói rằng systemctl vượt xa khả năng cơ bản. Ngoài các chức năng cơ bản - như bắt đầu, dừng, bật hoặc tắt một service cụ thể - bạn cũng có thể thiết lập những cấu hình nâng cao với systemctl.

service bị hạn chế hơn do khả năng tương thích cần thiết của nó với các trình quản lý service cơ bản mà nó dựa vào.

Thứ Năm, 10/08/2023 08:15
55 👨 538
0 Bình luận
Sắp xếp theo
    ❖ Linux