답변:
systemctl
의 옵션 중 일부를 사용할 수 있습니다.
-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.
아마 당신은 원할 것입니다 :
systemctl --type=service --state=active list-units
종료 된 서비스를 포함하여 모든 활성 서비스가 나열됩니다. 이 순간에 실행 한 후에 만 다음을 사용할 수 있습니다.
systemctl --type=service --state=running list-units
systemctl
어떤 하위 명령없이 명령은 가정 list-units
, 그래서 ... systemctl --type-service --state=running
, 아니면 그냥 일반 systemctl
빠른 사용.
man 1 systemctl
다음과 같습니다 (참조 ).
systemctl list-units | grep -E 'service.*running'
또는 (도 참조 man 8 service
)
service --status-all
여기서 [+]
실제로 실행중인 서비스를 나타냅니다.
필요한 것보다 더 오래 둘러 본 후에 나는 실행중인 서비스를 결정하는 약간 다른 방법을 생각해 냈습니다. 실행중인 서비스 수를 계산하는 방법도 보여줍니다. 이러한 방식으로 서비스 이름 자체에서 단어가 실행 중이거나 서비스 중일 때 실수로 무언가를 잡을 수 없습니다.
# 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}'