Cách quản lý dịch vụ systemd trong Linux bằng lệnh systemctl | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách quản lý dịch vụ systemd trong Linux bằng lệnh systemctl

Chia sẻ kiến thức 06/03/2022

Bạn muốn tìm hiểu cách quản lý các dịch vụ hệ thống trên máy Linux của mình? Đây là những gì bạn cần biết về lệnh systemctl.

Bạn muốn tìm hiểu cách quản lý các dịch vụ hệ thống trên máy Linux của mình? Đây là những gì bạn cần biết về lệnh systemctl.

Quản lý dịch vụ là một trong những trách nhiệm chính của quản trị viên hệ thống Linux. Bên cạnh đó, việc biết cách quản lý các dịch vụ hệ thống cũng rất quan trọng đối với người dùng Linux vì họ có thể phải xử lý các dịch vụ theo cách này hay cách khác.

Hướng dẫn này xem xét cách quản lý các dịch vụ systemd bằng lệnh systemctl.

Systemd là gì?

Systemd là một trình quản lý hệ thống và dịch vụ cho hệ điều hành Linux. Nó là trình quản lý dịch vụ mặc định trong nhiều bản phân phối Linux bao gồm Ubuntu, Red RHEL, OpenSuse và Arch Linux. Systemd là sự kế thừa của các trình quản lý dịch vụ cũ hơn như System V và Upstart .

Không giống như trình quản lý dịch vụ System V, systemd hiệu quả hơn do khởi động các dịch vụ song song để tăng tốc quá trình khởi động Linux. Một tính năng độc đáo khác của systemd là nó cung cấp dịch vụ theo yêu cầu, tức là nó có thể trì hoãn việc bắt đầu dịch vụ cho đến khi hệ thống cần, điều này giúp cải thiện hiệu suất đáng kể.

Systemd không bị giới hạn trong việc quản lý các quy trình hoặc dịch vụ điều hành mà còn có thể được sử dụng để giám sát mạng, bộ định thời gian chạy (running timer) và hơn thế nữa.

Quản lý dịch vụ systemd với lệnh systemctl

Trong Linux, lệnh systemctl chịu trách nhiệm quản lý các dịch vụ systemd. Nếu bạn có thư mục /usr/lib/systemd trên hệ thống của mình, thì rất có thể bạn đang sử dụng trình quản lý dịch vụ systemd.

Bạn cũng có thể chạy bất kỳ lệnh nào sau đây để kiểm tra xem trình quản lý dịch vụ systemd có sẵn trên hệ thống của bạn hay không.

systemctl --version
systemd --version

Kiểm tra trạng thái của dịch vụ

Để kiểm tra trạng thái của một dịch vụ cụ thể trên hệ thống của bạn, hãy sử dụng lệnh status (trạng thái) theo sau là tên của dịch vụ bạn muốn kiểm tra.

Ví dụ, để kiểm tra trạng thái của dịch vụ docker, bạn có thể chạy lệnh sau. Docker là một chương trình ảo hóa hiện đại được các nhà phát triển phần mềm sử dụng để xây dựng các ứng dụng một cách hiệu quả.

systemctl status docker

Lưu ý: Hướng dẫn sử dụng systemctl cũng chỉ động từ sau systemctl như một lệnh, do đó, hướng dẫn này sẽ bám sát định nghĩa đó để có tính nhất quán.

đầu ra của trạng thái dịch vụ linux

Ngoài việc liệt kê trạng thái của dịch vụ, lệnh status cũng cung cấp cho bạn các thông tin quan trọng như ID quy trình (PID) của dịch vụ, mức sử dụng bộ nhớ và danh sách các thay đổi gần đây trong dịch vụ.

Biết trạng thái của dịch vụ là một trong những cách chính bạn sẽ sử dụng để khắc phục lỗi hoặc chẩn đoán sự cố. Trước khi đi vào chi tiết lý do tại sao một cái gì đó không hoạt động, quản trị viên hệ thống thường trước hết sẽ kiểm tra xem dịch vụ có vận hành hay không.

Liệt kê dịch vụ với lệnh systemctl

Thông thường, bạn sẽ cần biết những dịch vụ nào có trên hệ thống của mình trước khi có thể tiến hành quản lý chúng. Bạn có thể sử dụng lệnh sau để liệt kê tất cả các dịch vụ hiện có trên hệ thống của mình.

systemctl list-unit-files --type service --all

Ngoài việc liệt kê các dịch vụ có trên hệ thống của bạn, lệnh cũng sẽ hiển thị trạng thái của các dịch vụ này. Các trạng thái phổ biến nhất bao gồm; enabled (đã bật), disabled (tắt), masked (bị che), v.v.

Bắt đầu và Dừng dịch vụ

Lệnh stop được sử dụng để dừng một dịch vụ mà bạn không muốn chạy nữa. Ví dụ: để dừng dịch vụ docker:

systemctl stop docker

Có một số lý do để dừng các dịch vụ trên máy Linux của bạn. Các dịch vụ không sử dụng tiêu tốn tài nguyên hệ thống một cách không cần thiết và làm giảm hiệu suất của PC.

Nếu một dịch vụ đang sử dụng quá nhiều bộ nhớ, hãy xem xét các tùy chọn khác để quản lý bộ nhớ trong Linux . Việc có nhiều dịch vụ đang chạy cũng là một nguy cơ bảo mật tiềm ẩn vì bạn để lộ nhiều cổng hơn với thế giới bên ngoài có thể bị khai thác.

Để khởi động một dịch vụ không chạy, hãy sử dụng lệnh start. Ví dụ: để khởi động lại dịch vụ docker mà bạn đã dừng gần đây:

systemctl start docker

Nếu bạn muốn dừng một dịch vụ và sau đó bắt đầu lại ngay lập tức, bạn có thể sử dụng lệnh restart như sau.

systemctl restart docker

Bật và tắt dịch vụ

Các thuật ngữ Enabling (Bật) và Starting (Khởi động) dịch vụ thường gây nhầm lẫn cho một số người dùng Linux. Bằng cách bật một dịch vụ, bạn đang nói rằng dịch vụ đó phải được bật khi hệ thống khởi động hoặc phải sẵn sàng khi một phần cứng nào đó được cắm vào. Để bật dịch vụ docker trên Linux:

systemctl enable docker

Để ngăn dịch vụ bắt đầu chạy khi PC khởi động, bạn có thể sử dụng lệnh disable. Ví dụ: ra lệnh sau để tắt dịch vụ docker:

systemctl disable docker

Có nhiều lệnh và tùy chọn khác mà bạn có thể sử dụng để quản lý các dịch vụ trên hệ thống của mình. Chạy lệnh systemctl –help hoặc xem các trang hướng dẫn sử dụng lệnh systemctl man nếu có điều gì đó bạn không hiểu:

man systemctl

Dịch từ: https://www.makeuseof.com/manage-systemd-services-linux/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại