“ Grep แตกทำให้กระบวนการบู๊ตหยุดตลอดไป”


10

คำถามภายในคำถาม (จากDebian wiki ):

ฉันควรใช้ sid บนเดสก์ท็อปของฉันหรือไม่

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

คำถามของฉันคือgrepกระบวนการบูตแตกหักได้อย่างไร


4
หนึ่งในความผิดพลาดที่ผมเคยทำกับมีgrep grep -r pattern . > pattern.grepเนื่องจากเชลล์สร้างไฟล์เอาต์พุตก่อนที่จะเรียกใช้grepงานgrepคำสั่งจะค้นหาไฟล์เอาต์พุตซึ่งเติบโตขึ้นจนกว่าดิสก์จะเต็ม ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องกับสิ่งใดก็ตามที่อาจทำให้กระบวนการบูตหยุดทำงานตลอดไป
Keith Thompson

คำตอบ:


8

เป็นเรื่องปกติที่สคริปต์บูตจะโทรgrepถึงจุดหนึ่ง หากgrepแฮงค์เนื่องจากข้อผิดพลาดตัวแรกของสคริปต์การบูตที่เรียกgrepจะหยุดทำงาน หรือมากกว่าปกติหากสคริปต์ตัวใดตัวหนึ่งเหล่านี้ใช้งานไม่ได้และการโทรgrepโดยไม่ต้องใส่อาร์กิวเมนต์ชื่อไฟล์และไม่มีการเปลี่ยนเส้นทางอินพุตgrepจะนั่งรอตลอดเวลาเพื่อรอรับอินพุตคอนโซล ประเภทCtrl+D) หากสคริปต์ใช้งานไม่ได้และโทรไปที่ไพพ์grepหรืออุปกรณ์ที่ไม่มีใครเขียน ... แย่เกินไป


5

วิธีที่ชัดเจนคือ "grep แฮงค์ตลอดกาลดังนั้นสิ่งที่ใช้ grep แฮงค์ตลอดกาลและบางอย่างในกระบวนการบูททำเช่นนั้น"

ข้อความมีแนวโน้มที่จะเป็นตัวอย่างมากกว่าตัวอย่างที่แท้จริงของปัญหา แต่มันเป็นไปไม่ได้

เพื่อทำความเข้าใจให้เริ่มอ่าน/etc/init.d/rcและ/etc/init.d/rcS- นั่นคือเชลล์สคริปต์ที่รันบิตทั้งหมดที่ทำให้ระบบของคุณ

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