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