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?

È stato utile?

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:

$ 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top