Come si contano processi specifici su Mac OS X?
-
13-11-2019 - |
Domanda
Usando un Mac, quale sarebbe il modo migliore per contare il numero di istanze di un particolare processo che sto eseguendo? Questo è per una sceneggiatura che sto scrivendo per trovare il numero di ffmpeg
Processi in esecuzione sulla mia macchina.
Dovrei usare top
qui? ps aux|grep ffmpeg
? Quale sarebbe il modo migliore per ottenere il numero?
Soluzione
Grep -c conterà eventi:
count=`ps aux | grep -v "grep" | grep -c ffmpeg`
echo $count
Altri suggerimenti
ps aux | grep ffmpeg | wc -l
ti porterà il numero di processi che menzionano la frase "ffmpeg" dovrai meno 1 su questo valore come ps aux | grep ffmpg
è anche un processo.
Stai cercando il programma chiamato "WC" -"WC -l" conterà le righe per te.
"Man WC" per i dettagli.
Puoi provare il uccidi tutti comando sul Mac:
$ killall -s ffmpg
kill -TERM 20148
kill -TERM 20146
kill -TERM 20140
Il -s
significa solo elencare ciò che faresti, ma in realtà non uccidere alcun processo. Pipiscilo a wc
, e dovresti ottenere il tuo risultato:
$ killall -s ffmpg | wc -l
3
In uno script di shell, puoi fare qualcosa del genere:
num_of_processes=$(killall -s ffmpg | wc -l)
$ pgrep -c ffmpeg
Se non usi pgrep
allora solo grep
potrebbe produrre falsi positivi.
Per evitarlo potresti provare -C
opzione:
$ ps -C ffmpeg -o pid= | wc -l
Controlla che il tuo ps
La versione lo interpreta correttamente.