Cách sử dụng Systemctl để liệt kê tất cả các service Linux

Khi quản lý hệ thống Linux, việc hiểu cách kiểm soát và giám sát các service hệ thống là rất quan trọng. Systemd, trình quản lý hệ thống và service cho hầu hết các bản phân phối Linux, cung cấp một bộ công cụ mạnh mẽ cho mục đích này. Bài viết hôm nay sẽ đi sâu vào cách bạn có thể liệt kê tất cả các service đang chạy trong systemd, tập trung vào terminal Ubuntu làm ví dụ.

Systemd là gì?

Systemd là một hệ thống init được sử dụng để khởi động không gian người dùng và quản lý các tiến trình hệ thống sau khi khởi động. Hiện nay, hầu hết các bản phân phối Linux chính đều sử dụng hệ thống này. Hệ thống này thay thế hệ thống SysVinit cũ và đã trở thành tiêu chuẩn cho việc quản lý service trong Linux.

Kiểm tra trạng thái của các service

Để bắt đầu, lệnh chính để tương tác với systemd là systemctl. Hãy cùng xem cách chúng ta có thể sử dụng systemctl để liệt kê tất cả các service đang chạy.

Liệt kê các service đang chạy bằng systemctl

Bạn có thể liệt kê tất cả các service systemd đang chạy bằng lệnh sau:

systemctl list-units --type=service --state=running

Khi bạn chạy lệnh này trong terminal Ubuntu, nó sẽ hiển thị danh sách tất cả các service đang hoạt động. Kết quả đầu ra có thể trông như thế này:

UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
● atd.service                        loaded active running Deferred execution scheduler
  avahi-daemon.service               loaded active running Avahi mDNS/DNS-SD Stack
  cron.service                       loaded active running Regular background program processing daemon
  dbus.service                       loaded active running D-Bus System Message Bus
  networking.service                 loaded active running Raise network interfaces
  ssh.service                        loaded active running OpenBSD Secure Shell server

Kết quả đầu ra này hiển thị một số cột:

  • UNIT: Tên của service.
  • LOAD: Chỉ ra file cấu hình của service đã được load thành công hay chưa.
  • ACTIVE: Trạng thái kích hoạt cấp cao.
  • SUB: Trạng thái kích hoạt cấp thấp.
  • DESCRIPTION: Mô tả ngắn gọn về service.

Kết quả đầu ra mặc định khá hữu ích, nhưng đôi khi hơi quá. Nếu thích chế độ xem đơn giản hơn, bạn có thể tùy chỉnh đầu ra bằng tùy chọn --no-pager để ngăn đầu ra được gửi qua công cụ phân trang và grep để lọc qua các service. Ví dụ:

systemctl list-units --type=service --state=running --no-pager | grep ssh

Lệnh này sẽ chỉ hiển thị các service liên quan đến ssh, rất tiện lợi nếu bạn đặc biệt quan tâm đến trạng thái của những service liên quan đến SSH.

Cách xử lý các service không chạy

Điều quan trọng nữa là phải biết cách tìm các service không chạy. Ví dụ, để xem các service đã lỗi, bạn có thể sử dụng:

systemctl --failed

Lệnh này sẽ liệt kê các service không load hoặc không khởi động được. Đây là cách đầu ra có thể xuất hiện:

 UNIT                         LOAD   ACTIVE SUB    DESCRIPTION
● nginx.service                loaded failed failed A high performance web server
● mysql.service                loaded failed failed MySQL Community Server

Điều này đặc biệt hữu ích để khắc phục sự cố vì nó làm nổi bật các service cần chú ý.

Mẹo và thủ thuật bổ sung

Lọc danh sách

Systemd cung cấp một số cách để lọc và xem các loại service cụ thể. Ví dụ, bạn có thể sử dụng flag --all để liệt kê tất cả các service bất kể trạng thái của chúng hoặc chỉ định một service cụ thể theo tên chính xác của nó để có thông tin trạng thái chi tiết:

systemctl status ssh.service

Thưởng thức quyền kiểm soát

Nếu là người thích tinh chỉnh và kiểm soát chi tiết những gì đang chạy trên hệ thống của mình, bạn sẽ đánh giá cao khả năng của systemd. Các công cụ mà systemd cung cấp rất mạnh mẽ và linh hoạt, cho phép quản lý chi tiết trạng thái service cần thiết cho bất kỳ quản trị viên hệ thống nào.

Làm thế nào để liệt kê tất cả các service, cho dù đang hoạt động hay không?

Bạn có thể liệt kê tất cả các service đã cài đặt, cho dù đang hoạt động hay không, bằng cách sử dụng lệnh sau:

systemctl list-units --type=service --all

Lệnh này hiển thị mọi service được cài đặt trên hệ thống của bạn, bao gồm cả những service hiện không chạy.

Làm thế nào để bắt đầu hoặc dừng một service?

Để bắt đầu một service, hãy sử dụng:

sudo systemctl start [service-name].service

Để dừng một service, hãy sử dụng:

sudo systemctl stop [service-name].service

Thay thế [service-name] bằng tên của service mà bạn muốn kiểm soát.

Làm thế nào để cho phép một service bắt đầu khi khởi động?

Để đảm bảo service tự động chạy khi khởi động, hãy sử dụng:

sudo systemctl enable [service-name].service

Lệnh này tạo liên kết tượng trưng từ bản sao file service của hệ thống (thường nằm trong /etc/systemd/system/ hoặc /lib/systemd/system/) đến vị trí mà systemd tìm kiếm các file tự động chạy khi khởi động.

Lệnh nào để kiểm tra trạng thái của một service cụ thể?

Để kiểm tra trạng thái của một service cụ thể, bạn có thể sử dụng:

systemctl status [service-name].service

Lệnh này cung cấp thông tin chi tiết về service, bao gồm trạng thái hiện tại, nhật ký gần đây nhất và cấu hình.

Làm thế nào để load lại service sau khi thay đổi cấu hình của service đó?

Sau khi sửa đổi cấu hình của service, bạn có thể load lại service để áp dụng những thay đổi này bằng:

sudo systemctl reload [service-name].service

Lệnh này yêu cầu service load lại các file cấu hình của mình mà không dừng và khởi động lại hoàn toàn service.

Có cách nào để xem nhật ký của một service cụ thể không?

Có, để xem nhật ký cho một service cụ thể, bạn có thể sử dụng lệnh journalctl:

journalctl -u [service-name].service

Lệnh này sẽ hiển thị các mục nhật ký cho service được chỉ định. Thêm -f sẽ theo dõi nhật ký, hiển thị các mục mới khi chúng xuất hiện.

Bạn có thể liệt kê các service theo trạng thái load hoặc trạng thái hoạt động của chúng không?
Hoàn toàn có thể! Bạn có thể lọc các service dựa trên trạng thái load hoặc trạng thái hoạt động của chúng bằng cách sử dụng:

systemctl list-units --type=service --state=loaded

hoặc

systemctl list-units --type=service --state=active

Các lệnh này giúp bạn thu hẹp danh sách xuống những service đã được load vào hệ thống hoặc hiện đang hoạt động.

Thành thạo cách liệt kê và quản lý các service bằng systemd là một kỹ năng quan trọng đối với bất kỳ ai sử dụng Linux. Chúng ta đã khám phá cách kiểm tra trạng thái của các service, cách bắt đầu, dừng và quản lý chúng, cũng như cách đảm bảo chúng hoạt động như mong đợi bằng những lệnh như systemctl. Cho dù bạn đang khắc phục sự cố, tinh chỉnh hệ thống của mình hay chỉ tò mò về những gì đang chạy bên trong, các công cụ do systemd cung cấp đều mang đến một cách toàn diện và mạnh mẽ để giữ cho hệ thống Linux của bạn được tổ chức và hoạt động hiệu quả.

Thứ Hai, 14/04/2025 17:30
51 👨 62
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    ❖ Linux
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng