X-Server

獲取 gui 應用程序程序的報告

  • June 5, 2019

我想以這種格式列出主要應用程序程序報告

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

過濾主要的 GUI 應用程序wmctrl -pl是我獲得程序 ID 的唯一方法。如果xlsclients可以使用它,那就太好了。它包含我想要的名字的真實列表。

如何將它們組合為單個命令以根據需要獲取報告。(ps -p = xlsclients -p)

通常情況下,在 Unix 中,您可以將命令連結在一起,並且通常許多命令是專門建構的,以便它們可以與其他命令生成的輸出一起使用。

幸運的是,您可以獲取xlsclients並解析它的輸出,以便它只是命令的名稱。然後,您可以將此資訊傳遞給ps命令以獲取您要查找的輸出:

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

然後,您可以將此程序名稱列表提供-Cps.

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

**注意:**我們已經移除了這個-e開關,因為我們現在提供了一個ps.

例子

$ 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

引用自:https://unix.stackexchange.com/questions/147060