Obtenga un informe de los processs de aplicación de GUI

Quiero enumerar los principales informes de processs de aplicaciones en este formatting

ps -e -o pid,comm,pmem,pcpu,uname 

Para filtrar las principales aplicaciones de GUI, wmctrl -pl es la única forma en que puedo get ids. de processs. Esto es excelente si se pueden usar xlsclients . Contiene la list real con los nombres que quiero.

¿Cómo puedo combinarlos como commands individuales para get un informe como yo quiera? (ps -p = xlsclients -p)

A menudo ocurre que en Unix puede encadenar commands juntos, y muchas veces muchos commands se crean específicamente para que funcionen con la salida generada por otros commands.

Afortunadamente puede tomar la salida de xlsclients y analizarla para que sea solo el nombre del command. A continuación, puede pasar esta información al command ps para get el resultado que está buscando:

 $ xlsclients dufresne conky -c /home/slm/.conky/b.conf dufresne cinnamon-session dufresne cinnamon-settings-daemon dufresne csd-locate-pointer dufresne clipit $ xlsclients | cut -d" " -f3 | paste - -s -d ',' conky,cinnamon-session,cinnamon-settings-daemon.... 

A continuación, puede proporcionar esta list de nombres de processs al interruptor -C de ps .

 $ ps -o pid,comm,pmem,pcpu,uname \ -C $(xlsclients | cut -d" " -f3 | paste - -s -d ',') 

NOTA: hemos eliminado el -e ya que ahora estamos proporcionando una list para ps .

Ejemplo

 $ ps -o pid,comm,pmem,pcpu,uname \ -C "$(xlsclients | cut -d" " -f3 | paste - -s -d ',')" | head PID COMMAND %MEM %CPU USER 1998 cinnamon-launch 0.2 0.0 slm 2031 cinnamon 6.5 0.7 slm 16736 cinnamon-launch 0.3 0.0 slm 16738 cinnamon 6.1 2.7 slm 16994 cinnamon-sessio 0.2 0.0 slm 17231 cinnamon-settin 0.4 0.0 slm 17293 csd-locate-poin 0.2 0.0 slm 17331 nm-applet 0.3 0.0 slm 17339 clipit 0.2 0.1 slm