特定の属性を持つデバイスを一覧表示するには?

特定の属性を持つデバイスを一覧表示するには?

私は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.*'

これは、ユニットごとに複数のコマンドを実行するため、非常に遅いです。

おすすめ記事