Как подсчитать конкретные процессы в Mac OS X? - PullRequest
1 голос
/ 28 февраля 2012

При использовании Mac какой лучший способ подсчитать количество экземпляров определенного процесса, который я запускаю? Это сценарий, который я пишу для определения количества ffmpeg процессов, запущенных на моей машине.

Должен ли я использовать top здесь? ps aux|grep ffmpeg? Как лучше всего получить номер?

Ответы [ 5 ]

3 голосов
/ 28 февраля 2012

grep -c будет подсчитывать вхождения:

count=`ps aux | grep -v "grep" | grep -c ffmpeg`
echo $count
2 голосов
/ 28 февраля 2012

ps aux | grep ffmpeg | wc -l даст вам количество процессов, в которых упоминается фраза 'ffmpeg', вам нужно будет минус 1 для этого значения, так как ps aux | grep ffmpg также является процессом.

1 голос
/ 28 февраля 2012

pgrep:

$ pgrep -c ffmpeg

Если вы не используете pgrep, то простое grep может привести к ложным срабатываниям.

Чтобы избежать этогоВы можете попробовать -C параметр:

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

Убедитесь, что ваша версия ps правильно его интерпретирует.

1 голос
/ 28 февраля 2012

Вы можете попробовать команду killall на Mac:

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

-s означает просто список того, что вы хотите сделать, но на самом деле не уничтожать какие-либо процессы.Перенаправьте его на wc, и вы должны получить свой результат:

$ killall -s ffmpg | wc -l
3

В сценарии оболочки вы можете сделать что-то вроде этого:

num_of_processes=$(killall -s ffmpg | wc -l)
1 голос
/ 28 февраля 2012

Вы ищете программу с именем "wc" - "wc -l" будет подсчитывать строки для вас.

"man wc" для деталей.

...