Lệnh Systemctl để hiển thị một bản tóm tắt các dịch vụ đang chạy


12

systemctllựa chọn hoặc lệnh Tôi sẽ sử dụng để hiển thị một bản tóm tắt của tất cả các dịch vụ hiện đang chạy?


Bạn nên chấp nhận câu trả lời của @Zanna. nó giải quyết nhiều hơn câu hỏi của bạn như của tôi, ngay cả khi đó là một cách tiếp cận hợp lệ.
Videonauth

Câu trả lời:


20

Bạn có thể sử dụng một số systemctltùy chọn:

-t, --type=
       The argument should be a comma-separated list of unit types such as
       service and socket.

       If one of the arguments is a unit type, when listing units, limit
       display to certain unit types. Otherwise, units of all types will
       be shown.

       As a special case, if one of the arguments is help, a list of
       allowed values will be printed and the program will exit.

   --state=
       The argument should be a comma-separated list of unit LOAD, SUB, or
       ACTIVE states. When listing units, show only those in the specified
       states. Use --state=failed to show only failed units.

       As a special case, if one of the arguments is help, a list of
       allowed values will be printed and the program will exit.

Vì vậy, có lẽ bạn muốn:

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

Trong đó liệt kê tất cả các dịch vụ đang hoạt động bao gồm cả những dịch vụ đã thoát. Nếu bạn chỉ sau khi những người đang chạy tại thời điểm này, bạn có thể sử dụng:

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

3
Các systemctllệnh mà không cần bất kỳ lệnh con giả list-units, vì vậy ... systemctl --type-service --state=running, hay chỉ là một đồng bằng systemctlđể sử dụng nhanh chóng.
muru


4

Sau khi tìm kiếm xung quanh lâu hơn mức cần thiết, tôi đã nghĩ ra phương pháp xác định dịch vụ đang chạy hơi khác này. Nó cũng cho thấy làm thế nào để đếm số lượng dịch vụ đang chạy. Cách này đảm bảo rằng nó không vô tình bắt được một cái gì đó với từ đang chạy hoặc dịch vụ trong chính tên dịch vụ.

# Output all active services:
systemctl -t service --state=active --no-pager --no-legend

# Count of all active services:
systemctl -t service --state=active --no-pager --no-legend | grep -c -

# Output all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running'

# Count of all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' -c -

# Output only the service and its description:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' | awk 'BEGIN { FS = " ";} {for (i = 2; i <= 4; i++) { $i = "" }; print}'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.