프로세스가 n%보다 많은 CPU를 사용하는 경우 최대 절전 모드

프로세스가 n%보다 많은 CPU를 사용하는 경우 최대 절전 모드

저는 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=이 번호를 알려주는 것만으로도 충분하다는 것을 의미합니다.

관련 정보