Получить cpuid для определенного потока процесса, используя ps

0

Как мне получить команду ps для вывода только cpuid, если я знаю pid и tid?

я могу использовать ps -e -mo pid,tid,psr | grep Thread_Id для отображения текущего процессора, на котором запущен поток, но есть ли способ получить просто 'psr' без необходимости обработки результирующей выходной строки:

$ ps -e -mo pid,tid,psr | grep 4360
$  -   4360   0 <-- thread 4360 on cpu0

Вместо этого просто напечатайте

$ 0

Что-то вроде ps -p Process_Id -t Thread_Id -o psr & lt; - Это, очевидно, не работает.

Или любая другая команда, отличная от «ps», которая выполнит работу?

vreg
источник
То есть вы просто пытаетесь сузить результаты до третьего столбца, верно?
n8te
@ n8te: Да, я хочу, чтобы команда выводила напрямую только процессор, если у меня есть идентификатор процесса и потока.
vreg
Вы можете передать результаты в команду awk. Попробуйте это и скажите мне, если это дает результаты, которые вы ищете: ps -e -mo pid,tid,psr | grep 4360 | awk '{print $3}'
n8te
Это должно было сработать, но не ... оно печатает '-', за которым следует процессор в следующей строке. Я ищу вывод только процессор. Работает ли это для вас?
vreg
Используйте это вместо: ps -e -mo pid,tid,psr | grep 4360 | awk 'FNR == 2 {print $3}'
n8te