使用Mac,计算我正在运行的特定进程的实例数量的最佳方法是什么?这是我写的一个脚本,用于查找在我的机器上运行的ffmpeg
进程的数量。如何计算Mac OS X上的特定进程?
我应该在这里使用top
吗? ps aux|grep ffmpeg
?什么是获得号码的最佳方式?
使用Mac,计算我正在运行的特定进程的实例数量的最佳方法是什么?这是我写的一个脚本,用于查找在我的机器上运行的ffmpeg
进程的数量。如何计算Mac OS X上的特定进程?
我应该在这里使用top
吗? ps aux|grep ffmpeg
?什么是获得号码的最佳方式?
grep的-c将计算实例:
count=`ps aux | grep -v "grep" | grep -c ffmpeg`
echo $count
您正在寻找名为“wc”的程序 - “wc -l”会为您计算行数。
“man wc”了解详情。
ps aux | grep ffmpeg | wc -l
会为您提供提及短语'ffmpeg'的进程数量,您需要减去此值的1,因为ps aux | grep ffmpg
也是一个进程。
您可以在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)
$ pgrep -c ffmpeg
如果你不如果使用pgrep
则仅仅grep
可能会产生误报。
为了避免它,你可以尝试-C
选项:
$ ps -C ffmpeg -o pid= | wc -l
检查您的ps
版本正确地解释它。
尝试'ps -Cffmpeg'以避免grepping(并捕获grep本身或'man ffmpeg')。 – 2012-02-28 20:43:58
@userunknown:在mac:'ps -C/usr/sbin/syslogd'会给你'ps:非法参数ffmpeg' – 2012-02-29 01:08:49
呵呵,我猜syslogd或者ffmpeg都是双方的 - 调用和错误是什么意思?然而,你看,是否有另一种方式来调用ps的名字在MacOS上寻找? – 2012-02-29 04:46:14