เทอร์มินัลคำสั่งสำหรับการค้นหารหัสของกระบวนการคืออะไร


12

ฉันต้องการออกจากกระบวนการโดยใช้บรรทัดคำสั่ง แต่ไม่สามารถจำคำสั่งเพื่อค้นหา ID ของกระบวนการได้ ไม่มีใครรู้หรือไม่

คำตอบ:


13

คำสั่งที่จะหากระบวนการ id ของ (ที่มาของชื่อ) pidofเป็น อย่างไรก็ตามเนื่องจากคุณต้องการฆ่ากระบวนการจึงมีวิธีที่ดีกว่า / ง่ายกว่าการใช้pidofเพื่อค้นหา pid ก่อน:

สมมติว่ากระบวนการที่คุณต้องการฆ่านั้นมีชื่อที่ไม่ซ้ำกัน (หรือคุณต้องการที่จะฆ่ากระบวนการทั้งหมดด้วยชื่อนั้น) คุณไม่จำเป็นต้องรู้ pid killall processnameคุณก็สามารถทำได้

หากมีหลายกระบวนการที่มีชื่อเหมือนกัน แต่คุณต้องการฆ่าหนึ่งในนั้นโดยใช้pidofจะไม่ช่วยคุณมากนักเพราะมันจะให้ pids แก่คุณ แต่จะไม่ให้ข้อมูลใด ๆ แก่คุณในการพิจารณาว่า pids เป็นของกระบวนการที่คุณต้องการฆ่าจริง

ในกรณีนี้คุณสามารถทำps aux | grep processnameซึ่งจะแสดงกระบวนการทั้งหมดที่มีชื่อที่กำหนดรวมถึงคอนโซลที่ใช้งานอยู่ (ถ้ามี) และอาร์กิวเมนต์ที่เรียกใช้ด้วยซึ่งหวังว่าจะช่วยให้คุณระบุกระบวนการที่คุณกำลังมองหา .

หากกระบวนการเปิด X-windows ใด ๆ คุณสามารถใช้xkillเพื่อฆ่า (เรียกใช้xkillแล้วคลิกที่หน้าต่าง)


7

คุณควรดูpgrepและpkillยูทิลิตี้ที่มีประโยชน์และทรงพลังสองอย่างที่พบในระบบ Linux และ UNIX ส่วนใหญ่

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes

5

คุณสามารถเรียกใช้ps -Aในเทอร์มินัลเพื่อแสดงกระบวนการทั้งหมด (ด้วย ID กระบวนการของพวกเขา) ที่กำลังทำงานอยู่


ไปที่grepเพื่อค้นหาชื่อของกระบวนการเฉพาะ:ps -A | grep 'my name'
Gabriel Staples

2

ฉันยังมีปัญหาที่คล้ายกัน ผมใช้pstree -p; สิ่งนี้แสดงให้ฉันเห็นกระบวนการที่กำลังทำงานอยู่ในปัจจุบันรวมถึงรหัสกระบวนการ


คำสั่งที่น่าสนใจ
jumpnett


1

pstree -p | grep $(program_name)ที่ฉันชอบคือ นี่เป็นการรวมกระบวนการเข้าด้วยกันไฮไลต์มันและแสดง pid ในวงเล็บ

ที่ชื่นชอบต่อไปของฉัน (โดยเฉพาะเมื่อการเขียนโปรแกรมและต้อง PIDs ทั้งหมดจากกระบวนการ) pgrep -law ""ถูก สิ่งนี้จะช่วยให้คุณเรียกใช้ pid ทุกครั้งตามด้วยแอปพลิเคชัน (ด้วยพา ธ สัมบูรณ์)

ซึ่งสามารถลดเป็นpgrep -lw ""pid ตามด้วยชื่อโปรแกรมหรือแม้แต่pgrep -lสำหรับ pids ทั้งหมด

แน่นอนคุณสามารถค้นหาชื่อโปรแกรมเฉพาะ (หรือส่วนหนึ่งของโปรแกรม) (เช่นpgrep -lw firefอาจจะแสดงบางสิ่งเช่น "4567 firefox")


จะpstree -psH $(pgrep prgram_name)ดีกว่าหรือไม่ในกรณีแรก
muru

ใช่มันก็ใช้ได้เช่นกัน คุณสามารถสร้างชื่อแทนได้ ฉันเพิ่งใช้ $ () เพื่อแสดงชื่อของโปรแกรม ฉันคิดว่าการพิมพ์ $ (ชื่อ pgrep) น่ารำคาญเล็กน้อยเพราะเครื่องหมายดอลลาร์ แต่ฉันคิดว่านามแฝงของสิ่งนั้นอาจมีประโยชน์
dylnmc

0

คำตอบนี้จาก @Ben สำหรับคำถามที่ซ้ำกันได้แก้ปัญหาของฉัน:

พิจารณาใช้topคำสั่งใน terminal

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

ผ่านคนบน

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