งาน“ ปฏิเสธที่จะหยุด” ในการระงับได้อย่างไร


17

เมื่อวานเมื่อปิดแล็ปท็อปของฉันมันไม่ได้เข้าสู่โหมดสแตนด์บายทันที ตามบันทึกมันพยายาม แต่งานปฏิเสธที่จะหยุด:

Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):

สิ่งนี้ดำเนินต่อไปอีกสองสามชั่วโมงจนกระทั่งระบบหยุดทำงานจริง syslogก็เต็มไปด้วยข้อความเช่นในคำถามนี้เพราะsystemdได้พยายามอีกครั้งและอีกครั้ง

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

คำตอบ:


25

การแช่แข็งงานมีการบันทึกรายละเอียดไว้ในเอกสารประกอบเคอร์เนลในเอกสาร

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

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

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