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