Android

วิธีการฆ่ากระบวนการใน linux

A day with Scandale - Harmonie Collection - Spring / Summer 2013

A day with Scandale - Harmonie Collection - Spring / Summer 2013

สารบัญ:

Anonim

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

มันเกิดขึ้นกับเราทุกคนในบางจุดใช่มั้ย การแก้ปัญหาคือการยกเลิกหรือฆ่ากระบวนการสมัคร แต่อย่างไร

โชคดีที่มีระบบสาธารณูปโภคหลายอย่างใน Linux ที่ให้คุณฆ่ากระบวนการที่ผิดพลาดได้

เราจะแสดงวิธีใช้คำสั่ง kill , killall และ pkill เพื่อยุติกระบวนการใน Linux

ความแตกต่างที่สำคัญระหว่างเครื่องมือเหล่านี้คือ kill จะยกเลิกโปรเซสตามหมายเลข Process ID (PID) ในขณะที่คำสั่ง killall และ pkill จะยุติโปรเซสที่กำลังรันอยู่ตามชื่อและคุณสมบัติอื่น ๆ

ผู้ใช้ปกติสามารถฆ่ากระบวนการของตัวเอง แต่ไม่ใช่ผู้ที่เป็นของผู้ใช้อื่นในขณะที่ผู้ใช้รูทสามารถฆ่ากระบวนการทั้งหมด

ระบบฆ่าสัญญาณ

kill , killall และ pkill ส่งสัญญาณที่กำหนดไปยังกระบวนการหรือกลุ่มกระบวนการที่ระบุ เมื่อไม่มีการระบุสัญญาณเครื่องมือแต่ละอันจะส่ง 15 ( TERM )

สัญญาณที่ใช้บ่อยที่สุดคือ:

  • 1 (-HUP): เพื่อโหลดกระบวนการอีกครั้ง 9 (-KILL): เพื่อฆ่าโปรเซส 15 (-TERM): เพื่อหยุดกระบวนการอย่างนุ่มนวล

สัญญาณสามารถระบุได้สามวิธี:

  • ใช้หมายเลข (เช่น -1) กับคำนำหน้า“ SIG” (เช่น -SIGHUP) โดยไม่มีคำนำหน้า“ SIG” (เช่น -HUP)

ใช้อ็อพชัน -l เพื่อแสดงรายการสัญญาณที่มีอยู่ทั้งหมด:

kill -l # or killall -l

ขั้นตอนที่อธิบายไว้ด้านล่างจะทำงานกับการแจกแจง Linux ทั้งหมด

การยุติกระบวนการโดยใช้คำสั่ง kill

หากต้องการยุติกระบวนการด้วยคำสั่ง kill อันดับแรกคุณต้องค้นหากระบวนการ PID คุณสามารถทำได้โดยใช้คำสั่งต่าง ๆ เช่น top , ps , pidof และ pgrep

สมมติว่าเบราว์เซอร์ Firefox ไม่ตอบสนองและคุณต้องฆ่ากระบวนการ Firefox หากต้องการค้นหา ID กระบวนการให้ใช้คำสั่ง pidof :

pidof firefox

คำสั่งจะพิมพ์กระบวนการ Firefox ทั้งหมด:

2551 2514 1963 1856 1771

เมื่อคุณรู้ว่า Firefox ประมวลผล PID เพื่อยุติการส่งสัญญาณ TERM :

kill -9 2551 2514 1963 1856 1771

การยุติกระบวนการโดยใช้คำสั่ง killall

คำสั่ง killall ยกเลิกโปรแกรมทั้งหมดที่ตรงกับชื่อที่ระบุ

เมื่อใช้สถานการณ์เดียวกันก่อนหน้านี้คุณสามารถฆ่ากระบวนการ Firefox โดยพิมพ์:

killall -9 firefox

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

ตัวอย่างเช่นหากต้องการยุติกระบวนการทั้งหมดที่ทำงานในฐานะผู้ใช้“ sara” คุณจะต้องใช้คำสั่งต่อไปนี้:

sudo killall -u sara

การยุติกระบวนการโดยใช้คำสั่ง pkill

pkill ยุติกระบวนการที่ตรงกับรูปแบบที่กำหนดในบรรทัดคำสั่ง:

pkill -9 firefox

ชื่อของกระบวนการไม่จำเป็นต้องตรงกันทั้งหมด

ด้วย pkill คุณยังสามารถส่งสัญญาณไปยังกระบวนการที่เป็นเจ้าของโดยผู้ใช้ที่กำหนด หากต้องการฆ่าเฉพาะกระบวนการ Firefox ที่เป็นเจ้าของโดยผู้ใช้“ sara” คุณจะต้องพิมพ์:

pkill -9 -u sara firefox

ข้อสรุป

การยกเลิกโปรแกรมที่ไม่ตอบสนองโดยใช้คำสั่ง kill , killall และ pkill นั้นเป็นงานง่าย คุณจะต้องรู้ชื่อกระบวนการหรือ PID

ฆ่าสถานี