ฉันต้องการออกจากกระบวนการโดยใช้บรรทัดคำสั่ง แต่ไม่สามารถจำคำสั่งเพื่อค้นหา ID ของกระบวนการได้ ไม่มีใครรู้หรือไม่
ฉันต้องการออกจากกระบวนการโดยใช้บรรทัดคำสั่ง แต่ไม่สามารถจำคำสั่งเพื่อค้นหา ID ของกระบวนการได้ ไม่มีใครรู้หรือไม่
คำตอบ:
คำสั่งที่จะหากระบวนการ id ของ (ที่มาของชื่อ) pidof
เป็น อย่างไรก็ตามเนื่องจากคุณต้องการฆ่ากระบวนการจึงมีวิธีที่ดีกว่า / ง่ายกว่าการใช้pidof
เพื่อค้นหา pid ก่อน:
สมมติว่ากระบวนการที่คุณต้องการฆ่านั้นมีชื่อที่ไม่ซ้ำกัน (หรือคุณต้องการที่จะฆ่ากระบวนการทั้งหมดด้วยชื่อนั้น) คุณไม่จำเป็นต้องรู้ pid killall processname
คุณก็สามารถทำได้
หากมีหลายกระบวนการที่มีชื่อเหมือนกัน แต่คุณต้องการฆ่าหนึ่งในนั้นโดยใช้pidof
จะไม่ช่วยคุณมากนักเพราะมันจะให้ pids แก่คุณ แต่จะไม่ให้ข้อมูลใด ๆ แก่คุณในการพิจารณาว่า pids เป็นของกระบวนการที่คุณต้องการฆ่าจริง
ในกรณีนี้คุณสามารถทำps aux | grep processname
ซึ่งจะแสดงกระบวนการทั้งหมดที่มีชื่อที่กำหนดรวมถึงคอนโซลที่ใช้งานอยู่ (ถ้ามี) และอาร์กิวเมนต์ที่เรียกใช้ด้วยซึ่งหวังว่าจะช่วยให้คุณระบุกระบวนการที่คุณกำลังมองหา .
หากกระบวนการเปิด X-windows ใด ๆ คุณสามารถใช้xkill
เพื่อฆ่า (เรียกใช้xkill
แล้วคลิกที่หน้าต่าง)
คุณควรดูpgrep
และpkill
ยูทิลิตี้ที่มีประโยชน์และทรงพลังสองอย่างที่พบในระบบ Linux และ UNIX ส่วนใหญ่
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
คุณสามารถเรียกใช้ps -A
ในเทอร์มินัลเพื่อแสดงกระบวนการทั้งหมด (ด้วย ID กระบวนการของพวกเขา) ที่กำลังทำงานอยู่
ฉันยังมีปัญหาที่คล้ายกัน ผมใช้pstree -p
; สิ่งนี้แสดงให้ฉันเห็นกระบวนการที่กำลังทำงานอยู่ในปัจจุบันรวมถึงรหัสกระบวนการ
pidof
. ออกman pidof
รายละเอียด
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)
ดีกว่าหรือไม่ในกรณีแรก
คำตอบนี้จาก @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.
ผ่านคนบน
grep
เพื่อค้นหาชื่อของกระบวนการเฉพาะ:ps -A | grep 'my name'