บอกกระบวนการ PID โดยหน้าต่างใช่ไหม


คำตอบ:


57

ตามคำขอของคุณในคำถามอื่น ๆ นี่คือคำตอบของฉันอีกครั้ง:

ฉันแน่ใจว่ามีวิธีการทำที่สะอาดกว่า แต่สำหรับคำถามที่สองของคุณคุณสามารถลองทำสิ่งนี้:

   xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`

สิ่งนี้จะทำให้เคอร์เซอร์ข้ามซึ่งคุณสามารถคลิกที่หน้าต่างที่เปิดอยู่ มันจะรายงาน PID และคำสั่งในเครื่องที่คุณใช้งาน

โดยทั่วไปแล้ว xprop และ xwininfo จะให้ข้อมูลมากมายเกี่ยวกับหน้าต่างที่เปิดอยู่

"อะพอสโทรฟี" ที่ฉันใช้กับแมวโดยรอบคือปุ่ม ~ บนแป้นพิมพ์ของฉันโดยไม่ต้องกดปุ่ม Shift ควรให้ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้กับคุณ:

สำเนียงหลุมฝังศพและ backquote


xprop พูดว่า: _NET_WM_PID: ไม่พบ วิธีการนี้ไม่สามารถจะเข้าใจผิดพอ ...
Calmarius

5
สิ่งนี้ง่ายต่อการจดจำ: xprop | grep PID(แม้ว่าจะพิมพ์ ID กระบวนการเท่านั้น)
KajMagnus

คำตอบนี้ทำให้ฉันนึกถึงว่าฉันมีแอปเพล็ต Cinnamon ที่ทำสิ่งนี้ในทาสก์บาร์ของฉันซึ่งฉันลืมไปหมดแล้ว ว้าว. ขอบคุณสำหรับสิ่งนั้น!
Fabian Röling

16

คุณสามารถลองxprop | grep WM_CLASSแล้วคลิกที่หน้าต่างที่คุณสนใจ

ตัวอย่าง:

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gedit", "Gedit"

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gcalctool", "Gcalctool"

9

รันคำสั่งนี้ในเทอร์มินัล:

xprop | awk '/PID/ {print $3}'

ตัวชี้เมาส์ของคุณจะถูกแทนที่ด้วยกากบาท เลือกหน้าต่างที่คุณสนใจ

วิธีนี้แสดงเพียง PID ของกระบวนการที่เป็นเจ้าของหน้าต่างนั้น (ซึ่งดูเหมือนจะเป็นสิ่งที่คุณต้องการ)


2

คุณสามารถรับข้อมูลกระบวนการโดยใช้:

$ ps -f --pid $(xprop _NET_WM_PID | grep -o '[0-9]*')

0

การเรียกใช้xprop | awk '/_NET_WM_PID\(CARDINAL\)/{print $NF}'และคลิกหน้าต่างที่คุณต้องการ PID จะพิมพ์ PID ไปยังเทอร์มินัล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.