Bash

如何使用 systemd-cgtop 編寫腳本?

  • November 10, 2021

systemd-cgtop的手冊頁說,如果沒有附加的 tty,它將執行一次迭代然後列印出來,說這在腳本中很有用。

但是,當我嘗試從腳本執行此操作時,它不會像宣傳的那樣工作:

#!/bin/bash
line=$(systemd-cgtop|grep ezdose)
echo $line

像這樣執行腳本:

$ bash test.sh
(hangs with no output)

你怎麼做這個?

systemd-cgtop -n1 將進行 1 次迭代

要查找您是否連接到 tty,請在腳本中添加一行:tty

#!/bin/sh
#  How to check what tty you are on.
echo -ne "Connected TTY: "`tty`

line=$(systemd-cgtop -n1|grep ezdose)
echo $line

新聞摘錄:

與 201 的變化:

systemd-cgtop 也已更新為“可管道”,以便使用進一步的 shell 工具進行處理。

所以,你可以systemd-cgtop | grep ...v201.

與 188 的變化:

cgtop 獲得了一個新的 -n 開關(類似於 top),用於配置要執行的最大迭代次數。它還獲得了-b,以批處理模式執行(不接受輸入)。

你可以執行systemd-cgtop -n1 -b | grep ...。但systemd-cgtop列印Path Tasks %CPU Memory Input/s Output/s為第一行(直到v201)。

還:

與 221 的變化:

systemd-cgtop 工具學習了一個新的 –raw 開關來生成“原始”(機器可解析)輸出。

使用該--raw選項,您可以獲得以字節為單位的大小:即92213248,而不是87.9M

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