Mà systemctl
lự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?
Mà systemctl
lự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?
Câu trả lời:
Bạn có thể sử dụng một số systemctl
tù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
systemctl
lệ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.
Đó là (xem man 1 systemctl
):
systemctl list-units | grep -E 'service.*running'
hoặc (xem thêm man 8 service
)
service --status-all
Trường hợp các [+]
dịch vụ chỉ ra thực sự đang chạy.
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}'