วิธีฆ่ากระบวนการทั้งหมดใน Linux


16

ฉันต้องการฆ่ากระบวนการทั้งหมดในคอมพิวเตอร์ของฉัน ฉันสามารถใช้คำสั่งใดได้บ้าง


4
กระบวนการทั้งหมดหรือไม่ sudo reboot
Stephen

1
คุณกำลังพูดถึงกระบวนการที่คุณเป็นเจ้าของหรือกระบวนการทั้งหมดในระบบที่กำลังทำงานอยู่หรือไม่?
J. Polfer

3
@ สตีเฟ่น - จากนั้นเขา / เธอก็จะจบลงด้วยการเริ่มต้นกระบวนการทั้งหมดและนั่นคือสิ่งสุดท้ายที่คุณต้องการเมื่อคุณต้องการพวกเขาทั้งหมดตาย!
x3ja

คำตอบ:


29

shutdown -h now


9
ตกลงกระบวนการหยุดทำงานและมีคอมพิวเตอร์ คำตอบนี้เหมือนกับตอบ "วิธีการหยุดกังวลมาก" กับ "การฆ่าตัวตาย"
แอนดรูว์

29

คำสั่งkillall5 -9จะยุติกระบวนการที่กำลังทำงานทั้งหมดอย่างแข็งขันยกเว้นการเข้าสู่ระบบเชลล์, init และกระบวนการเฉพาะเคอร์เนล

ข้อมูลเพิ่มเติมที่นี่: http://linux.about.com/library/cmd/blcmdl8_killall5.htm


ตกลงฉันทำสิ่งนี้และตอนนี้เครื่องของฉันอยู่ในวงวนอย่างต่อเนื่องซึ่งจะถามรหัสผ่านฉันไปที่เดสก์ท็อปกลับไปที่ล็อกอินเชลล์และถามรหัสผ่านอีกครั้ง ฉันจะออกมาจากนี้ได้อย่างไร
Mahathi Vempati

ลิงค์นี้นำไปยังหัวข้ออื่นทันที
fixer1234

8

คุณสามารถฆ่ากระบวนการทั้งหมดของผู้ใช้ที่กำหนดโดยใช้หนึ่งในวิธีต่อไปนี้:

killall -u username

หรือ

pkill -u username

หรือคุณสามารถใช้ UID ที่เป็นตัวเลขแทนชื่อผู้ใช้

ระวังว่าการkillallทำงานแตกต่างกัน (คล้ายกับkillall5) ในบางระบบเช่น Solaris


8

วิธีที่ง่ายที่สุดคือการใช้เวทมนตร์ SysRqสำคัญ: Alt+ +SysRq นี้จะฆ่ากระบวนการทั้งหมดยกเว้นiinit

Alt+ SysRq+ oจะปิดระบบ (ฆ่า init ด้วย)

โปรดทราบว่าคุณอาจต้องตั้งค่าคีย์บอร์ดเป็นโหมด XLATE ก่อน: Alt+ SysRq+r

นอกจากนี้ทราบว่าบนแป้นพิมพ์ที่ทันสมัยบางอย่างที่คุณต้องใช้มากกว่าPrtScSysRq


โปรดทราบว่าขอแนะนำให้ใช้ Alt + Shift + SysRq + reisubเพื่อการรีบูตที่ปลอดภัย
l0b0

7

ใน Linux distros บางตัวคุณสามารถเปลี่ยนเป็น Run ระดับ 0 ซึ่งฉันคิดว่าหยุดทำงาน แต่ยังคงเปิดอยู่:

sudo telinit 0

ฉันเคยได้ยินเรื่องนี้ถูกนำมาใช้สำหรับเซิร์ฟเวอร์ไฟร์วอลล์โดยเฉพาะเพราะมันทำให้บางสิ่งเคอร์เนลระดับต่ำที่จำเป็นโหลดเหมือน iptables ... แปลกใช่มั้ย? ดูที่นี่สำหรับข้อมูลเพิ่มเติม

เพื่อดูว่า distros ทำในสิ่งที่แต่ละระดับการทำงาน, มีลักษณะที่นี่


1
เมื่อฉันเปลี่ยนคอมพิวเตอร์เพื่อ runlevel 0 จริง ๆ แล้วมันจะปิด ...
David Z

1
ดูเหมือนว่ามันขึ้นอยู่กับรสนิยมของคุณใน Linux - en.wikipedia.org/wiki/Runlevel#Linux - จะแก้ไขคำตอบของฉันเล็กน้อย
x3ja

4

หากต้องการฆ่ากระบวนการทั้งหมดที่ผู้ใช้ปัจจุบันเป็นเจ้าของคุณสามารถทำได้:

ps x | awk {'print $1'} | xargs kill

แน่นอนว่านี่จะฆ่าเชลล์ที่คุณลงชื่อเข้าใช้ด้วย หากคุณไม่ต้องการพฤติกรรมนั้นลองคำตอบของ raku015

โปรดทราบว่าหากคุณเรียกใช้ในฐานะผู้ใช้รูทสิ่งเลวร้ายจะเกิดขึ้น


4

วิธีที่เร็วและผิดพลาดที่สุดในการฆ่ากระบวนการทั้งหมดคือการดึงสายไฟออกจากผนัง


2
FTFY: s / หลักฐาน / ish /
Chris Nava

4
:-) นั่นเป็นเรื่องของความเห็น OP ไม่ได้ระบุว่าเป้าหมายที่ต้องการนั้นเกินกว่า "ฆ่ากระบวนการทั้งหมด" ฉันคิดว่ามันคงโง่ถ้ามีคำสั่งให้ฆ่ากระบวนการทั้งหมด
Doug Harris

2
ฉันเห็นด้วย. ไม่ต้องพูดถึงว่ามันเป็นเรื่องยากในระบบไฟล์เพื่อฆ่าพลังงานเช่นนั้น
Chris Nava

2
และถอดแบตเตอรี่ออกหากเป็นแล็ปท็อป
Keith Thompson

1
และใส่ไว้ในซีเมนต์เพื่อให้แน่ใจว่าจะไม่เคยมีกระบวนการใหม่ ๆ ออกมาใช่หรือไม่
Mokubai


1

ฉันจะใช้คำสั่งด้านล่าง (นี่คือสิ่งที่ฉันใช้เมื่อฉันติดอยู่)

kill -9 -1

สิ่งนี้จะฆ่ากระบวนการทั้งหมด สภาพแวดล้อมของฉันคือ Ubuntu ถ้าฉันพิมพ์สิ่งนี้ในเทอร์มินัลมันจะปิดกระบวนการทั้งหมดและจะนำคุณไปสู่หน้าจอเข้าสู่ระบบ (เกือบจะเหมือนกับออกจากระบบ)


มันเกือบจะเหมือนกับคำตอบที่บอกว่าkill -9 -1บวกกับอีกบรรทัดการฆ่า - คำตอบของคุณดูเหมือนคำตอบที่ต่างออกไปจริง ๆ หรืออาจจะเป็นการแสดงความคิดเห็นต่อคำตอบอื่นหรือไม่?
Xen2050

0
kill -9 -1 
kill -kill 0

ฉันไม่แน่ใจว่าคุณจะได้เวลาในการพิมพ์ kill -kill 0 หลังจากคำสั่งแรก
Menuka Ishan

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