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옵션을 사용하면 크기를 바이트 단위로 얻을 수 있습니다 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 ....

관련 정보