1
เหตุใด bash fork bombs จึงทำงานต่างกันและความสำคัญของมันคืออะไร?
ฉันรู้ว่า Fork fork แบบธรรมดาทำงานได้อย่างไร แต่ฉันไม่เข้าใจว่าทำไม & ในตอนท้ายของการวางระเบิด bash fork ทั่วไปและทำไมสคริปต์เหล่านี้จึงมีความแตกต่าง: :(){ (:) | (:) }; : และ :(){ : | :& }; : อดีตทำให้การใช้งาน cpu ขัดขวางก่อนที่จะทิ้งฉันกลับไปที่หน้าจอเข้าสู่ระบบ หลังทำให้ระบบของฉันค้างแข็งแทนที่จะบังคับให้ฉันรีบูตยาก ทำไมถึงเป็นอย่างนั้น? ทั้งสองอย่างต่อเนื่องสร้างกระบวนการใหม่ดังนั้นทำไมระบบทำงานแตกต่างกันอย่างไร สคริปต์ทั้งสองยังทำงานแตกต่างจาก :(){ : | : }; : ซึ่งไม่ได้ทำให้เกิดปัญหาใด ๆ เลยถึงแม้ว่าฉันจะคาดหวังให้พวกเขาเหมือนกัน หน้าคู่มือทุบตีระบุว่าคำสั่งในไปป์ไลน์ถูกดำเนินการแล้วใน subshell ดังนั้นฉันจึงเชื่อว่า: | : ควรเพียงพอแล้ว ฉันเชื่อ & ควรเรียกใช้ไปป์ไลน์ใน subshell ใหม่ …
16
bash
shell-script
fork