การเปิดตัวระบบ GNU Shepherd 0.8 init

มีอยู่ ผู้จัดการฝ่ายบริการ GNU ต้อน 0.8 (อดีตดีเอ็มดี) ซึ่งได้รับการพัฒนาโดยผู้พัฒนาการกระจาย GNU Guix System เป็นทางเลือกที่คำนึงถึงการพึ่งพาแทนระบบการเริ่มต้น SysV-init ภูตควบคุม Shepherd และยูทิลิตี้เขียนด้วยภาษา Guile (หนึ่งในการใช้งานของภาษา Scheme) ซึ่งใช้เพื่อกำหนดการตั้งค่าและพารามิเตอร์สำหรับการเปิดตัวบริการด้วย Shepherd ถูกใช้อยู่แล้วในการกระจาย GuixSD GNU/Linux และยังมุ่งเป้าไปที่การใช้งานใน GNU/Hurd ด้วย แต่สามารถทำงานบนระบบปฏิบัติการที่สอดคล้องกับ POSIX ใดๆ ซึ่งมีภาษา Guile ให้บริการ

Shepherd สามารถใช้ทั้งเป็นระบบการเริ่มต้นหลัก (เริ่มต้นด้วย PID 1) และในรูปแบบแยกต่างหากเพื่อจัดการกระบวนการพื้นหลังของผู้ใช้แต่ละราย (เช่น เพื่อเรียกใช้ Tor, Privoxy, mcron ฯลฯ ) ด้วยการดำเนินการที่มีสิทธิ์ของ ผู้ใช้เหล่านี้ Shepherd ทำงานในการเริ่มและหยุดบริการโดยคำนึงถึงความสัมพันธ์ระหว่างบริการ ระบุและเริ่มบริการแบบไดนามิกที่บริการที่เลือกขึ้นอยู่กับ Shepherd ยังสนับสนุนการตรวจจับข้อขัดแย้งระหว่างบริการและป้องกันไม่ให้ทำงานพร้อมกัน

นวัตกรรมหลัก:

  • Make-kill-destructor ดำเนินการฆ่ากลุ่มของกระบวนการ
  • เพิ่มพารามิเตอร์ "default-pid-file-timeout" ซึ่งกำหนดเวลารอสำหรับการสร้างไฟล์ PID
  • หากไฟล์ PID ไม่ปรากฏขึ้นภายในระยะหมดเวลา กลุ่มกระบวนการทั้งหมดจะถูกยกเลิก (ตัดสินใจ ปัญหา ปล่อยให้กระบวนการทำงานไม่มีไฟล์ PID)
  • เพิ่มพารามิเตอร์ “#:file-creation-mask” ให้กับ “make-forkexec-constructor” ใช้การสร้างไฟล์บันทึก และหยุดรองรับรูปแบบการโทรแบบเก่า
  • แก้ไขปัญหาเกี่ยวกับการคอมไพล์บนระบบที่ไม่มี prctl เช่น GNU/Hurd
  • แก้ไขปัญหาที่ทำให้ SIGALRM ถูกส่งทุกวินาที

ที่มา: opennet.ru

เพิ่มความคิดเห็น