Получить пользователя и время ядра рабочего процесса?

Можно использовать как это:

grep "pattern" file.txt | awk '{printf "%s ", $3}'

В зависимости от того, с чем Вы делаете grep, но необходимо рассмотреть использование awk для того, чтобы схватить себя:

awk '/pattern/{printf "%s ", $3}' file.txt

Иначе путем использования в своих интересах слова-spliting :

echo $(awk '/pattern/{print $3}' file.txt)

Редактирование: у Меня есть более забавный способ присоединиться к значениям:

awk '/pattern/{print $3}' file.txt | paste -sd " " -

7
26.05.2014, 20:11
1 ответ
[1181408] В Linux информация доступна в полях 14-17 из [1181789]/proc/$pid/stat[1181790] (подробнее см. [1181791]proc(5)[1181792]):

Поля:

14: время пользователя (в количестве тиков часов)

15: sys time

16: время ожидания детей

17: время ожидания детей

(там все нити данного процесса имеют одинаковые значения)

Они не сообщаются непосредственно [1181801]ps[1181802].

ps[1181804] сообщает 14 + 15 с [1181805]ps -о времени [1181806] и [1181807]14 + 15 + 16 + 17 [1181808] с [1181809]ps -кумулятивным -о bsdtime[1181810].

Остерегайтесь, что второе поле в [1181811]/proc/$pid/stat[1181812] может содержать пробелы или символы новой строки, поэтому вы не сможете разобрать его с помощью awk's [1181813]$1[1181814], [1181815]$2[1181816]....

Вы можете использовать [1181817]perl[1181818], например:

Процесс может извлекать свое время с помощью [1181819]getrusage(RUSAGE_SELF)[1181820] и [1181821]getrusage(RUSAGE_CHILDREN)[1181822].

Также существует [1181823]times[1181824] системный вызов, который извлекает ту же самую информацию. Для этого в оболочках POSIX есть [1181825]times[1181826]. Некоторые оболочки также предоставляют эту информацию со временем [1181827] [1181828] (без аргументов).

13
27.01.2020, 20:16

Теги

Похожие вопросы