systemd อยู่รอดการฆ่า -9 ได้อย่างไร?


28

ระหว่างคำถาม "ทำไม 'kill -9 0' ถึงจบเซสชันคอนโซลของฉัน" และ "วิธีการทำให้เคอร์เนลตื่นตระหนก" ฉันได้รับความรำคาญภายใต้อานของฉันและลองkill -9 1ใช้แล็ปท็อป Arch linux ที่ทันสมัยเป็นส่วนใหญ่ ฉันทำมันเป็น ID ผู้ใช้ "รูท"

ฉันคาดหวังว่าจะเกิดความผิดพลาดหรือตื่นตระหนกหรือปิดเครื่อง แต่ก็ไม่มีอะไรเกิดขึ้น ฉันทำkill -9 1อีกครั้งไม่มีผล

เครื่อง Arch Linux ใช้งานsystemdวันนี้ดังนั้น: systemdเอาตัวรอด kill -9 ได้อย่างไร ฉันคาดหวังว่าจะมีรหัสกรณีพิเศษในเคอร์เนล Linux 3.7 แต่อาจมีสาเหตุอื่นที่ฉันไม่ได้คิด

สิ่งอื่น ๆ ที่ทำงานด้วย PID 1 คืออะไร Slackware ยังคงใช้initฉันเชื่อ แต่ฉันกลัวที่จะลองบนเซิร์ฟเวอร์ Slackware ที่ใช้งานจริงของฉัน DD-WRT บนเราเตอร์ไร้สายของฉันรัน / sbin / init ในบางประเภท

คำตอบ:


33

จากman 2 kill:

สัญญาณเดียวที่สามารถส่งไปยังกระบวนการ ID 1 ซึ่งเป็นกระบวนการเริ่มต้นคือสัญญาณที่ init ได้ติดตั้งตัวจัดการสัญญาณอย่างชัดเจน สิ่งนี้ทำเพื่อให้มั่นใจว่าระบบจะไม่ถูกลบโดยไม่ตั้งใจ

นั่นคือเป็นไปได้ที่initจะทำสิ่งที่ชอบเมื่อได้รับSIGKILL(รวมถึงการออก) แต่ init ของ systemd ไม่ได้ติดตั้งตัวจัดการสัญญาณใด ๆ สำหรับมันดังนั้นจึงไม่มีอะไรเกิดขึ้น


4
ขอบคุณที่สังเกตว่า ลินุกซ์นี้เฉพาะเจาะจงหรือไม่? ฉันดูเหมือนจะจำการชนเวิร์กสเตชัน SunOS ในช่วงต้น 90s โดยการฆ่า init โดยไม่ได้ตั้งใจ หรือไม่. ฉันเป็นเด็กมากขึ้นโดยประมาท
Bruce Ediger

1
@ BruceEdiger ฉันก็ดูเหมือนจะจำได้ว่าสามารถkill -9 initและทำให้เกิดความตื่นตระหนกเคอร์เนล ดูเหมือนว่ามันจะเปลี่ยนไปในบางจุด
psusi

2
@BruceEdiger - ฉันลองใช้กับเซิร์ฟเวอร์ AIX และ HP-UX ทั้งสองส่งคืนข้อความแสดงข้อผิดพลาด: kill: 1: 0403-068 สัญญาณไม่ถูกต้องสำหรับกระบวนการนี้หรือ kill: 1: กระบวนการที่ระบุไม่มีอยู่ หน้าคนพูดถึงโดยเฉพาะว่าเรื่องนี้จะกลับข้อผิดพลาด ฉันได้รับการบอกเล่าจากผู้คนจำนวนมากว่าสิ่งนี้สามารถทำได้ก่อนหน้านี้ - แต่ไม่มีใครประสบความสำเร็จในช่วง 10 ปีที่ผ่านมา
DarkHeart

2
@BruceEdiger ดูเหมือนว่าจากการค้นหาบางอย่างว่านี่เป็นการพัฒนาล่าสุด (อย่างน้อยในแง่ของ Unix อายุการใช้งาน) น่าเสียดายที่ฉันไม่ได้มีชีวิตอยู่ในช่วงต้นยุค 90 ดังนั้นเมื่อมันเกิดขึ้นมันก็พ้นขอบเขตความรู้ของฉันไปแล้ว เป็นที่น่าสนใจที่จะทราบว่าดูเหมือนว่า Unices สมัยใหม่เกือบทั้งหมดจะเปลี่ยนเป็นพฤติกรรมเริ่มต้น
Chris Down
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.