当进程使用超过 n% CPU 时休眠

当进程使用超过 n% CPU 时休眠

我在 macOS 上。我想编写一个 bash 脚本,当某个进程(我仅通过命令名称知道)使用超过 5% 的 CPU 时,该脚本会暂停 0.5 秒(即休眠)。我可以

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=只给你这个数字就足够了。

相关内容