저는 macOS를 사용하고 있습니다. 프로세스(명령 이름으로만 알고 있음)가 CPU의 5% 이상을 사용할 때 0.5초 동안 일시 중지(즉, 휴면)하는 bash 스크립트를 작성하고 싶습니다. 저 할 수 있어요
pgrep command_name
그런 다음
ps -p PID -o %cpu | tail -1 | cut -c 3-5
CPU 사용량을 가져와 while 루프에서 해당 숫자를 사용합니다. 이 작업을 더 우아하게 수행할 수 있습니까(가급적이면 한 줄의 코드로)?
답변1
명령 대체를 사용하면 더 간단하게 만들 수 있습니다.
ps -p $(pgrep firefox) -o %cpu | tail -1 | cut -c 3-5
테스트할 Mac이 없어서 다음이 시스템에서 작동하지 않을 수 있습니다. 하지만 Linux에서는 다음을 %cpu=
사용하여 헤더 인쇄를 피할 수 있습니다.
$ ps -p $(pgrep firefox) -o %cpu
%CPU
23.3
$ ps -p $(pgrep firefox) -o %cpu=
23.3
이는 ps -p $(pgrep firefox) -o %cpu=
이 번호를 알려주는 것만으로도 충분하다는 것을 의미합니다.