如何计算Mac OS X上的特定进程?

时间:2012-02-28 00:59:48

标签: macos bash shell command-line openbsd

使用Mac,计算我正在运行的特定进程的实例数量的最佳方法是什么?这是我写的脚本,用于查找在我的机器上运行的ffmpeg个进程的数量。

我应该在这里使用top吗? ps aux|grep ffmpeg?得到这个数字的最佳方法是什么?

5 个答案:

答案 0 :(得分:3)

grep -c将计算出现次数:

count=`ps aux | grep -v "grep" | grep -c ffmpeg`
echo $count

答案 1 :(得分:2)

ps aux | grep ffmpeg | wc -l会为您提供提及“ffmpeg'你需要在这个值上减1,因为ps aux | grep ffmpg也是一个过程。

答案 2 :(得分:1)

您正在寻找名为“wc”的程序 - “wc -l”会为您计算行数。

“man wc”了解详情。

答案 3 :(得分:1)

您可以在Mac上尝试killall命令:

$ killall -s ffmpg
kill -TERM 20148
kill -TERM 20146
kill -TERM 20140

-s表示只列出你要做的事情,但实际上不会杀死任何进程。将其传递给wc,您应该得到结果:

$ killall -s ffmpg | wc -l
3

在shell脚本中,您可以执行以下操作:

num_of_processes=$(killall -s ffmpg | wc -l)

答案 4 :(得分:1)

pgrep

$ pgrep -c ffmpeg

如果您不使用pgrep,那么仅仅grep可能会产生误报。

为避免这种情况,您可以尝试-C选项:

$ ps -C ffmpeg -o pid= | wc -l

检查您的ps版本是否正确解释了它。