จะแสดงเฉพาะกระบวนการ * ไม่ * ตรงกับตัวกรองได้อย่างไร


12

ฉันใช้htopเพื่อตรวจสอบกระบวนการของฉันแบบโต้ตอบ

อย่างไรก็ตามบางครั้งกระบวนการบางอย่างได้รับ "ในทาง" และฉันต้องการที่จะกรองพวกเขาออก

น่าเสียดายที่ดูเหมือนว่าตัวกรอง htop ในตัว (เช่นF4) อนุญาตให้ฉันกำหนดตัวกรองเชิงบวกเท่านั้น (จะแสดงเฉพาะการจับคู่) และไม่ใช่ตัวกรองเชิงลบ (ทั้งหมดยกเว้นการแข่งขันจะแสดง)

ในที่สุดฉันไม่พบเอกสารใด ๆ เกี่ยวกับไวยากรณ์ที่แท้จริงของ search-string ( ดูเหมือนว่าregexesจะไม่ทำงาน)


AFAIK เป็นไปไม่ได้ มีเหตุผลที่ดีที่จะไม่ใช้งาน top? คุณสามารถทำได้อย่างง่ายดายด้วย
sebelk

FWIW การกรองฮ็อพควรได้รับการกรอง regex ในไม่ช้ามีความสมบูรณ์แม้ว่า GitHub ดึงคำขอดึงยังคงไม่ได้ดึง github.com/hishamhm/htop/pull/428
Richard Michael

คำตอบ:


5

ฉันไม่ทราบว่าสามารถใช้งานได้หรือไม่htopหากใช้topการดำเนินการอื่นเป็นตัวเลือกการtopใช้งานprocpsบน Linux (โดยทั่วไปคือการใช้งานเริ่มต้นที่นั่น) จากภายในtopคุณสามารถ

  1. ป้อนo(หรือOสำหรับการจับคู่กรณีที่สำคัญ)
  2. ป้อน!COMMAND=notwanted(หรือ!USER=unwanted)

เพื่อกรองกระบวนการที่มีชื่อ (หรือบรรทัดคำสั่งหลังจากกดc) มีnotwanted(หรือมีชื่อผู้ใช้unwanted) ป้อน=เพื่อลบตัวกรองทั้งหมด

คุณสามารถกรองในฟิลด์ใด ๆ ที่คุณต้องการ แต่จะปรากฏเฉพาะเมื่อมีการแสดง ตัวอย่างเช่นหากต้องการแยกงานเคอร์เนลคุณสามารถขอให้CODEคอลัมน์แสดง (ด้วยf) จากนั้นกรองตามCODE>0(ด้วยo)

โปรดทราบว่าอินเทอร์เฟซเริ่มต้นของtopการใช้งานนั้นอาจดู cruder กว่าของhtopแต่มันมีคุณสมบัติค่อนข้างมากจริง ๆ (และคุณสามารถกำหนดค่าด้วยสีและข้อมูลเพิ่มเติมถ้าจำเป็น)


2

ไม่ทราบวิธีการโดยตรงด้วย htop

อย่างไรก็ตามคุณอาจสามารถใช้ความสามารถในการปฏิเสธpgrepและป้อนรายการ pid ได้htop

สิ่งที่ต้องการ

htop -p "$(pgrep -vfd, 'java|python')"

นี่เป็นข้อเสียที่ชัดเจนของการไม่บัญชีสำหรับกระบวนการที่เริ่มต้นหลังจากhtopเริ่มทำงาน


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