使用Mac,计算我正在运行的特定进程的实例数量的最佳方法是什么?这是我写的脚本,用于查找在我的机器上运行的ffmpeg
个进程的数量。
我应该在这里使用top
吗? ps aux|grep ffmpeg
?得到这个数字的最佳方法是什么?
答案 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 -c ffmpeg
如果您不使用pgrep
,那么仅仅grep
可能会产生误报。
为避免这种情况,您可以尝试-C
选项:
$ ps -C ffmpeg -o pid= | wc -l
检查您的ps
版本是否正确解释了它。