
マンページ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/s
v201
返品:
221への変更:
systemd-cgtopツールは、「raw」(マシン解析可能)出力を生成する新しい--rawスイッチを学習しました。
この--raw
オプションを使用すると、サイズをバイト単位で取得できます92213248
。87.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 ...
。