ทำไมคำสั่ง 'kill' นี้จึงทำให้ฉันออกจากคอมพิวเตอร์?


40

คำสั่งต่อไปนี้ลงชื่อออกจากฉัน ( อย่าเรียกใช้คำสั่งนี้):

kill -9 -1

ฉันไม่เข้าใจว่าทำไม

บางคนสามารถอธิบายเรื่องนี้กับฉันได้ไหม

คำตอบ:


71

kill SIGNAL PIDไวยากรณ์

-9ระบุตัวเลือกว่าSIGKILLสัญญาณจะถูกส่ง (ทันทียุติกระบวนการเป้าหมาย (e) และระบุ PID -1เป็นชวเลขสำหรับ "กระบวนการทั้งหมดยกเว้นตัวเองและ init"

เนื่องจากคุณไม่ได้ใช้sudo(และสันนิษฐานว่าไม่มีสิทธิ์รูท) นี่จะฆ่ากระบวนการทั้งหมดที่คุณมีสิทธิ์ฆ่าทันทีเซสชันทั้งหมดของคุณจึงออกจากระบบ


9
และทราบว่าถ้าคุณใช้คำสั่งนี้ด้วย sudo เช่นsudo kill -9 -1นั้นคอมพิวเตอร์จะรีสตาร์ท
Anwar

จะเริ่มใหม่จริงหรือ ดูเหมือนว่ามันจะผิดพลาด
user606723

@ user606723 กระบวนการ init จะไม่ออกและสามารถตัดสินใจได้ว่าจะทำอะไรเมื่อมีการออกจากกระบวนการ (ถ้ามี)
Random832

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

27

ลอง

man kill

เพื่อรับคำอธิบายของคำสั่ง kill ..

มันบอกว่า:

PID ของ -1 เป็นพิเศษ มันบ่งชี้ถึงกระบวนการทั้งหมดยกเว้นกระบวนการฆ่าตัวเองและเริ่มต้น

และ

ตัวอย่าง

kill -9 -1

 Kill all processes you can kill.

ฉันหวังว่าคุณจะเข้าใจว่าเหตุใดคอมพิวเตอร์ของคุณจะออกจากระบบเมื่อคุณจบกระบวนการทั้งหมด คุณเลิกทุกอย่าง

หวังว่านี่จะช่วยได้


18
+1 manสำหรับชี้ไปที่ "สอนปลาอย่างไรmanและให้อาหารเขาตลอดชีวิต" (ปุนตั้งใจ :-))
m000

7

คุณให้-1เป็นรหัสกระบวนการ: จากหน้าkillคน:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.