systemd-cgtopを使ってスクリプトを書くには?

systemd-cgtopを使ってスクリプトを書くには?

マンページsystemd-cgtopttyが接続されていない場合は、繰り返しを実行してから印刷してスクリプトに役立つと言います。

ただし、スクリプトでこれを実行しようとすると、宣伝されたとおりに機能しません。

#!/bin/bash
line=$(systemd-cgtop|grep ezdose)
echo $line

次のようにスクリプトを実行します。

$ bash test.sh
(hangs with no output)

どうやって働くの?

答え1

から抜粋情報:

201への変更:

systemd-cgtopも他のシェルツールで処理できるように「パイプ可能」に更新されました。

したがって、systemd-cgtop | grep ...startから実行できますv201

188に変更:

cgtopには、実行の最大反復回数を設定するための新しい-nスイッチ(topと同様)が追加されました。また、バッチモードで実行される-bも取得しました(入力を許可しません)。

実行できますsystemd-cgtop -n1 -b | grep ...。ただし、最初の行(まで)でsystemd-cgtop印刷されます。Path Tasks %CPU Memory Input/s Output/sv201

返品:

221への変更:

systemd-cgtopツールは、「raw」(マシン解析可能)出力を生成する新しい--rawスイッチを学習しました。

この--rawオプションを使用すると、サイズをバイト単位で取得できます9221324887.9M

答え2

systemd-cgtop -n1は1回の反復を実行します。

ttyに接続されていることを確認するには、スクリプトにtty行を追加してください。

#!/bin/sh
#  How to check what tty you are on.
echo -ne "Connected TTY: "`tty`

line=$(systemd-cgtop -n1|grep ezdose)
echo $line

答え3

私のsystemd-cgtop -n1 -b | grep ...場合は、CPU使用率が返されなかったので、繰り返しをもう一度追加したところ、正しく機能しましたsystemd-cgtop -n2 -b | grep ...

関連情報