Risposte:
Potresti fare qualcosa del genere
top -p `pgrep -d ',' "java|tomcat|redis|mysql|mongo"`
Questo pgrep
produce un elenco separato da virgole di pid che vengono passatitop -p
Non esattamente quello che stai cercando, ma a volte un processo viene eseguito dal suo stesso utente, come apache2 viene spesso eseguito dall'utente www-data.
Puoi usarlo per limitare l'output di top solo ai processi di quell'utente, mostrando effettivamente solo i processi apache2 usando questo comando:
top -u www-data
Controlla la pagina man top man per maggiori dettagli sulla top utility ...
Semms hai bisogno del parametro -p
-p: monitora i PID come: -pN1 -pN2 ... o -pN1, N2 [, ...]
Monitor only processes with specified process IDs. This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted.
Prova questo:
alias mytop='echo $(sed "s/\([0-9]*\)/-p \1/g;s/^/top /" <(pgrep -d" " "java|redis|mysql|mongo"))'
mytop