Holen Sie sich cpuid für einen bestimmten Prozessthread mit ps

744
vreg

Wie bekomme ich den Befehl ps, um nur die cpuid auszugeben, wenn ich die pid und tid kenne?

Ich kann ps -e -mo pid,tid,psr | grep Thread_Iddie aktuelle CPU anzeigen, auf der der Thread läuft, aber es gibt eine Möglichkeit, nur "psr" zu erhalten, ohne die resultierende Ausgabezeichenfolge verarbeiten zu müssen:

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

Stattdessen einfach drucken

$ 0 

So etwas wie ps -p Process_Id -t Thread_Id -o psr<- Das funktioniert offensichtlich nicht.

Oder einen anderen Befehl als "ps", der die Arbeit erledigt?

0
Sie versuchen also, die Ergebnisse nur auf die dritte Spalte einzugrenzen, richtig? n8te vor 7 Jahren 0
@ n8te: Ja, ich möchte, dass ein Befehl nur die cpuid direkt ausgibt, wenn ich die Prozess- und Thread-IDs habe. vreg vor 7 Jahren 0
Sie können die Ergebnisse an einen awk-Befehl übergeben. Probieren Sie es aus und sagen Sie mir, ob es die Ergebnisse gibt, nach denen Sie suchen: `ps -e -mo pid, tid, psr | grep 4360 | awk '' ` n8te vor 7 Jahren 0
Das hätte funktionieren sollen, ist aber nicht ... es gibt '-' gefolgt von der cpuid in der nächsten Zeile aus. Ich freue mich darauf, nur die cpuid auszugeben. Funktioniert es für Sie? vreg vor 7 Jahren 0
Verwenden Sie stattdessen Folgendes: `ps -e -mo pid, tid, psr | grep 4360 | awk 'FNR == 2 ' ` n8te vor 7 Jahren 0
Ja, das funktioniert gut vreg vor 7 Jahren 0

0 Antworten auf die Frage