使用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