Tin tức và phân tích của tất cả các thiết bị di động

Cách sử dụng Systemd để liệt kê các dịch vụ

Tất cả các bản phân phối Linux chính đều sử dụng Systemd, một hệ thống init hoạt động bằng cách bao gồm và loại trừ các tệp “dịch vụ”. Nếu bạn đang cố liệt kê các tệp dịch vụ này nhưng không biết cách, bạn sẽ cần sử dụng lệnh systemctl.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu các cách khác nhau để bạn có thể xem các tệp dịch vụ Systemd trên Linux. Để bắt đầu, hãy đảm bảo rằng bạn đang sử dụng hệ điều hành Linux với Systemd. Sau đó mở một cửa sổ đầu cuối và làm theo hướng dẫn.

Sử dụng Systemd để liệt kê các dịch vụ đang hoạt động

Nếu bạn sử dụng Systemd nhiều, đến một lúc nào đó bạn có thể muốn biết những dịch vụ nào đang hoạt động khi Linux khởi động. Liệt kê các dịch vụ đang hoạt động rất dễ dàng và có thể được thực hiện bằng lệnh systemctl -type = service systemctl -type = service -state = running.

Lệnh này khi chạy sẽ hiển thị một bảng gồm tất cả các dịch vụ nếu chúng đang hoạt động, cũng như một mô tả ngắn gọn. Để chạy chương trình này, hãy mở một cửa sổ đầu cuối. Khi cửa sổ đầu cuối được mở, hãy thực hiện lệnh bên dưới.

systemctl --type=service --state=running

Nếu bạn đang cố gắng lọc tất cả các dịch vụ đang hoạt động cho một dịch vụ cụ thể, thì việc xem qua bảng lớn này có thể khá khó khăn. May mắn thay, lệnh systemctl có thể được kết hợp với lệnh grep như một cơ chế lọc.

Ví dụ: để kiểm tra xem dịch vụ “snapd.service” có đang chạy và được tải hay không, bạn có thể chạy systemctl -type = service -state = running | grep ‘snapd’ và đầu ra sẽ chỉ hiển thị dịch vụ Snapd chứ không phải toàn bộ bảng.

systemctl --type=service --state=running | grep 'snapd'

Nếu bạn muốn lưu đầu ra của bảng trong một tệp văn bản để sử dụng sau này, hãy sử dụng lệnh sau.

systemctl --type=service --state=runningrunning > ~/active-services.txt

Để xem tệp văn bản bất cứ lúc nào, hãy thực hiện lệnh cat bên dưới.

cat ~/active-services.txt

Sử dụng Systemd để liệt kê các dịch vụ không hoạt động

Liệt kê các dịch vụ Systemd đang hoạt động là hữu ích, nhưng còn những dịch vụ không hoạt động thì sao? Có, chúng cũng có thể được thay thế. Đây là cách. Đầu tiên, mở một cửa sổ đầu cuối.

Khi cửa sổ đầu cuối mở và sẵn sàng sử dụng, hãy thực hiện systemctl -type=service nhưng trong vị trí -state= hãy đặt “không hoạt động” thay vì “đang chạy”. Bằng cách này, bạn có thể xem dịch vụ Systemd nào không hoạt động trên hệ thống Linux của mình.

systemctl --type=service --state=inactive

Cũng như các dịch vụ đang hoạt động, Systemd sẽ tạo một bảng gọn gàng đẹp mắt và hiển thị cho bạn các dịch vụ Systemd nào không hoạt động, đã chết và không được sử dụng. Nếu bạn muốn lọc bảng này để xem một dịch vụ cụ thể có ngừng hoạt động hay không, bạn có thể liên kết nó với lệnh grep.

Ví dụ: để xác định xem tệp “updatedb.service” có không hoạt động hay không, bạn có thể kết hợp systemctl -type = service -state = inactive với lệnh grep bên dưới để tìm kiếm tệp đó trong bảng.

systemctl --type=service --state=inactive | grep 'updatedb.service'

Nếu bạn muốn lưu tất cả các tệp Systemd không hoạt động vào một tệp văn bản để đọc sau, hãy sử dụng lệnh sau.

systemctl --type=service --state=inactive > ~/inactive-services.txt

Để đọc tệp văn bản này trực tiếp từ cửa sổ đầu cuối, hãy sử dụng lệnh cat.

cat  ~/inactive-services.txt

Sử dụng Systemd để liệt kê tất cả các dịch vụ đã cài đặt

Nếu bạn muốn xem tất cả các dịch vụ Systemd đã cài đặt, dù đang hoạt động hay không, bạn cần sử dụng systemctl list-unit-files -type=service và tắt khóa chuyển dòng lệnh -state. Ngoại trừ –state, Systemd sẽ có thể dễ dàng liệt kê tất cả các tệp dịch vụ trên máy của bạn.

systemctl list-unit-files --type=service

Sau khi thực hiện lệnh trên, systemd sẽ in một bảng với mọi tệp dịch vụ trên hệ thống của bạn. Từ đây, bạn có thể sắp xếp bảng để tìm tệp dịch vụ bạn cần.

Nếu bạn không thể tìm thấy một tệp dịch vụ cụ thể, bạn có thể kết hợp lệnh systemctl list-unit-files -type=service với lệnh grep để sử dụng bộ lọc. Sử dụng lệnh bên dưới để lọc bảng để tìm tệp dịch vụ bạn cần.

systemctl list-unit-files --type=service | grep 'my-service'

Bạn muốn xuất tất cả các dịch vụ Systemd sang tệp văn bản để đọc sau? Thực hiện lệnh sau.

systemctl list-unit-files --type=service > ~/service-files.txt

Bạn có thể xem tệp văn bản bất cứ lúc nào bằng lệnh cat bên dưới.

cat ~/service-files.txt

Sử dụng Systemd để xem trạng thái của từng dịch vụ

Mặc dù rất hữu ích khi biết cách liệt kê tất cả các dịch vụ Systemd đang hoạt động và không hoạt động, nhưng cũng rất hữu ích khi biết cách liệt kê trạng thái của các dịch vụ riêng lẻ. Đây là cách để làm điều đó.

Đầu tiên, mở một cửa sổ đầu cuối. Khi cửa sổ đầu cuối mở, hãy sử dụng lệnh status systemctl trên dịch vụ đã chỉ định. Ví dụ: để tìm trạng thái của “NetworkManager.service”, lệnh sau sẽ được chạy.

systemctl status NetworkManager

Nếu bạn muốn xuất đầu ra lệnh trạng thái thành tệp văn bản để đọc sau, bạn có thể nhập lệnh bên dưới.

systemctl status MyService > ~/MyService-status.txt

Để xem tệp này, hãy thực hiện lệnh cat sau.

cat ~/MyService-status.txt