发现 Mac OS X 中正在运行和阻塞的进程数

发现 Mac OS X 中正在运行和阻塞的进程数

在Linux中,我可以发现正在运行和阻塞的进程数

grep "procs_running" /proc/stat

grep "procs_blocked" /proc/stat

有没有办法在 Mac OS X 中做到这一点?最好是我可以在 shell 脚本中使用的方式?

答案1

基于 Blender 的答案,要获取正在运行的进程的数量,可以使用以下命令:

$ ps axo state | grep "R" | wc -l

要获取不间断睡眠中的进程数,您可以使用(编辑将“D”更改为“U”,谢谢吉尔斯!):

$ ps axo state | grep "U" | wc -l

答案2

嗯,人性化的方式是使用top.这是一些输出:

Processes: 62 total, 3 running, 1 stuck, 58 sleeping, 309 threads      10:33:37
Load Avg: 0.47, 0.57, 0.41  CPU usage: 41.78% user, 7.4% sys, 51.17% idle
SharedLibs: 68K resident, 0B data, 0B linkedit.
MemRegions: 20459 total, 751M resident, 0B private, 390M shared.
PhysMem: 535M wired, 1179M active, 1074M inactive, 2787M used, 1310M free.
VM: 133G vsize, 1024M framework vsize, 374887(174) pageins, 0(0) pageouts.
Networks: packets: 208538/119M in, 37975/3259K out.
Disks: 445803/4601M read, 70299/3187M written.

PID   COMMAND      %CPU TIME     #TH  #WQ  #POR #MREG RPRVT  RSHRD  RSIZE
1046  DataDetector 0.0  00:00.13 5/1  3/1  71+  351+  7548K+ 55M+   17M+
1045  top          5.8  00:00.38 1/1  0    25+  72    1468K  7480K  3312K 
1042  less         0.0  00:00.00 1    0    14   34    360K   2312K  1080K 
1040- cvmsComp_i38 0.0  00:00.03 1    0    18   51    912K   2656K  3384K 
1035  csh          0.0  00:00.02 1    0    17   39    732K   2936K  1816K 
1034  login        0.0  00:00.04 1    0    22   239   3028K  29M    6392K 
1032  Terminal     4.0  00:01.13 7    2    114+ 567+  13M+   97M+   33M+
1025  mdworker     0.0  00:00.11 3    1    48   260   5036K  54M    10M 
1021  Safari       0.0  00:09.56 9    2    132  943   34M    122M   103M 
999   mdworker     0.0  00:05.55 3    1    50   476   12M    77M    99M 
997-  thunderbird- 0.3  00:43.25 12   1    155  1546  73M    110M   147M 
981   Preview      0.0  00:01.84 2    1    103  686   21M    111M   45M 
935-  firefox-bin  4.0  01:43.97 25   1    238  1637  81M    138M   205M 
905-  kass         0.0  00:00.06 2    1    57   394   3760K  53M    9028K 

这对脚本不太友好。这是ps aux

USER       PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
nope       935   5.3  5.1  1387680 212912   ??  Ss   10:14AM   1:58.11 /Applica
root        56   1.5  2.0   729352  85588   ??  Ss    4:29AM  14:39.52 /Library
nope      1032   1.2  0.8  2892072  34060   ??  R    10:32AM   0:01.80 /Applica
root        59   0.1  0.5   668812  19976   ??  Ss    4:29AM   2:19.72 /Library
_spotlight  1025 0.0  0.3  2533548  10708   ??  SNs  10:29AM   0:00.12 /System/
nope      1021   0.0  2.5  5133320 105128   ??  S    10:26AM   0:09.57 /Applica
nope       999   0.0  2.4  2666868 101324   ??  SNs  10:24AM   0:05.57 /System/
nope       997   0.0  3.6  1211652 150380   ??  Ss   10:24AM   0:43.56 /Users/n
nope       981   0.0  1.1  2919128  46448   ??  S    10:23AM   0:01.86 /Applica
root       905   0.0  0.2   954736   9028   ??  S    10:12AM   0:00.07 /Library
nope       901   0.0  0.5  1027840  19980   ??  S    10:12AM   0:00.26 /Library
nope       900   0.0  0.3  2814856  13464   ??  S    10:12AM   0:00.06 /System/
nope       879   0.0  0.2   957704  10384   ??  S    10:12AM   0:00.39 /Library

尝试玩那些。我不确定被阻止的进程是什么,但是这些命令应该帮助。

祝你好运!

答案3

htop对此很好。
除了按 CPU 或其他方式排序之外,它还向您显示树视图。

brew install htop

相关内容