특정 속성을 가진 장치를 나열하는 방법은 무엇입니까?

특정 속성을 가진 장치를 나열하는 방법은 무엇입니까?

나는 systemd-run --user일을 운영하기 위해 많은 것들을 사용합니다. 임시 단위만 나열하고 싶지만 systemctl --user list-units그렇게 할 수 있는 옵션은 없는 것 같습니다. 나는 또한 Transient부동산을 나열 할 수 없으므로 systemctl --user list-units --output json이것이 나에게도 효과가 없습니다.

임시직( Transient=yes)만 나열하려면 어떻게 해야 하나요?

답변1

언제든지 모든 셀을 반복하여 systemctl --user show -p Transient --value각 셀에서 실행할 수 있습니다.

systemctl --user list-units --full --no-legend --no-pager --all |
  while IFS=' ' read -r u rest; do
    [ "$(systemctl --user show -p Transient --no-pager --value -- "$u")" = yes ] &&
      printf '%s\n' "$u"
  done

스크립트는 user-unit-prop-grep다음과 같이 작성할 수 있습니다.

#! /bin/sh -
systemctl --user list-units --full --no-legend --no-pager --all |
  while IFS=' ' read -r u rest; do
    systemctl --user show --no-pager -- "$u" |
      grep -H --label="$u" "$@"
  done

그런 다음 단위를 나열하십시오 Transient=yes.

user-unit-prop-grep -lx Transient=yes

Transient또는 각 셀 이름 옆에 속성 값을 인쇄합니다.

user-unit-prop-grep -Po '^Transient=\K.*'

이는 단위당 여러 명령을 실행하기 때문에 매우 느립니다.

관련 정보