การเปิดตัวตัวจัดการบริการ s6-rc 0.5.3.0 และระบบการเริ่มต้น s6-linux-init 1.0.7

มีการเตรียมการเปิดตัวตัวจัดการบริการที่สำคัญ s6-rc 0.5.3.0 ซึ่งออกแบบมาเพื่อจัดการการเปิดตัวสคริปต์และบริการเริ่มต้นโดยคำนึงถึงการขึ้นต่อกันของบัญชี ชุดเครื่องมือ s6-rc สามารถใช้ทั้งในระบบการเริ่มต้นและสำหรับการจัดระเบียบการเปิดตัวบริการโดยพลการที่เกี่ยวข้องกับเหตุการณ์ที่สะท้อนถึงการเปลี่ยนแปลงในสถานะของระบบ ให้การติดตามแผนผังการพึ่งพาเต็มรูปแบบและการเริ่มต้นหรือปิดบริการโดยอัตโนมัติเพื่อไปถึงสถานะที่ระบุ รหัสเขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต ISC

ตัวจัดการบริการ s6-rc ซึ่งถือได้ว่าเป็นอะนาล็อกของ sysv-rc หรือ OpenRC ประกอบด้วยชุดยูทิลิตี้สำหรับการเริ่มและหยุดกระบวนการที่ใช้เวลานาน (daemons) หรือสคริปต์การเริ่มต้นที่สิ้นสุดทันที ในระหว่างการทำงาน จะคำนึงถึงการพึ่งพาระหว่างส่วนประกอบต่างๆ การเปิดใช้งานสคริปต์และบริการแบบขนานที่ไม่ตัดกันนั้นรับประกันได้ และรับประกันว่าลำดับของการดำเนินการสคริปต์จะทำซ้ำในการเปิดตัวที่แตกต่างกัน การเปลี่ยนแปลงสถานะทั้งหมดได้รับการประมวลผลโดยคำนึงถึงการขึ้นต่อกันของบัญชี ตรวจสอบให้แน่ใจว่าการขึ้นต่อกันไม่ถูกละเมิด (เช่น เมื่อบริการเริ่มต้นขึ้น การขึ้นต่อกันที่จำเป็นสำหรับการดำเนินการจะถูกเปิดใช้งานโดยอัตโนมัติ และเมื่อหยุด บริการที่ขึ้นต่อกันก็จะถูกหยุดเช่นกัน)

แทนที่จะใช้ระดับรัน s6-rc เสนอแนวคิดการรวมกลุ่มที่เป็นสากลมากขึ้น ซึ่งช่วยให้คุณสามารถจัดกลุ่มบริการตามคุณลักษณะที่กำหนดเองและงานที่ต้องแก้ไข เพื่อปรับปรุงประสิทธิภาพการทำงาน มีการใช้ฐานข้อมูลการพึ่งพาที่คอมไพล์แล้ว ซึ่งสร้างขึ้นโดยยูทิลิตี้ s6-rc-compile โดยอิงตามเนื้อหาของไดเร็กทอรีพร้อมไฟล์สำหรับเริ่ม/หยุดบริการ ยูทิลิตี s6-rc-db และ s6-rc-update มีไว้สำหรับการแยกวิเคราะห์และจัดการฐานข้อมูล ระบบรองรับสคริปต์เริ่มต้นที่เข้ากันได้กับ sysv-init และสามารถนำเข้าข้อมูลการพึ่งพาจาก sysv-rc หรือ OpenRC

ข้อดีของ s6-rc คือการใช้งานแบบกะทัดรัดซึ่งไม่มีสิ่งใดที่ไม่จำเป็นยกเว้นส่วนประกอบสำหรับการแก้ปัญหาโดยตรงและใช้ทรัพยากรน้อยที่สุด s6-rc แตกต่างจากผู้จัดการบริการอื่นๆ โดยรองรับการสร้างกราฟการขึ้นต่อกันในเชิงรุก (ออฟไลน์) สำหรับชุดบริการที่มีอยู่ ซึ่งช่วยให้คุณดำเนินการวิเคราะห์การขึ้นต่อกันที่ใช้ทรัพยากรจำนวนมากแยกกันได้ และไม่ในระหว่างการโหลดหรือการเปลี่ยนแปลงสถานะ ในเวลาเดียวกัน ระบบไม่ได้เป็นแบบเสาหินและแบ่งออกเป็นชุดของโมดูลแยกและเปลี่ยนได้ ซึ่งแต่ละโมดูลจะแก้ไขเฉพาะงานเฉพาะตามปรัชญาของ Unix เท่านั้น

เมื่อใช้ร่วมกับยูทิลิตี้ s6 ที่ตรวจสอบการทำงานของกระบวนการ (คล้ายกับ daemontools และ runit) ชุดเครื่องมือนี้ช่วยให้คุณสามารถตรวจสอบการทำงานของบริการที่ใช้เวลานานได้พร้อม ๆ กัน ตัวอย่างเช่น การรีสตาร์ทบริการเหล่านั้นในกรณีที่มีการยุติที่ผิดปกติ และตรวจสอบให้แน่ใจว่าลำดับ ของคำสั่งต่างๆ จะถูกเรียกใช้ในรูปแบบที่สามารถทำซ้ำได้ และทำซ้ำในสตาร์ทอัพต่างๆ คุณสมบัติที่รองรับ ได้แก่ การเปิดใช้งานบริการเมื่อเข้าถึงซ็อกเก็ต (เปิดตัวจัดการเมื่อเข้าถึงพอร์ตเครือข่าย) การบันทึกเหตุการณ์กระบวนการ (แทนที่ syslogd) และการควบคุมการให้สิทธิ์เพิ่มเติม (คล้ายกับ sudo)

ในเวลาเดียวกัน มีการเปิดตัวแพ็คเกจ s6-linux-init 1.0.7.0 โดยนำเสนอการใช้งานกระบวนการเริ่มต้นสำหรับการสร้างระบบ init สำเร็จรูปสำหรับระบบปฏิบัติการที่ใช้เคอร์เนล Linux ซึ่งใน s6 และ s6 ยูทิลิตี้ -rc ใช้เพื่อจัดการบริการและสคริปต์การเริ่มต้น ในเวลาเดียวกัน s6 และ s6-rc ไม่ได้เชื่อมโยงกับ s6-linux-init และสามารถใช้กับระบบการเริ่มต้นใดๆ ได้หากต้องการ

นอกจากนี้ โครงการยังจัดให้มี:

  • s6-networking เป็นชุดยูทิลิตี้สำหรับสร้างบริการเครือข่าย คล้ายกับ ucspi
  • s6-frontend - เฟรมเวิร์กสำหรับสร้างการทำงานของ daemontools และ runit ขึ้นมาใหม่ที่ด้านบนของ s6
  • s6-portable-utils คือชุดของยูทิลิตี้ Unix มาตรฐาน เช่น cut, chmod, ls, sort และ grep ซึ่งได้รับการปรับให้เหมาะสมเพื่อการใช้ทรัพยากรน้อยที่สุด และจัดหาให้ภายใต้ใบอนุญาต ISC
  • s6-linux-utils - ชุดยูทิลิตี้เฉพาะสำหรับ Linux เช่น chroot, freeramdisk, logwatch, mount และ swapon
  • s6-dns คือชุดของไลบรารีไคลเอ็นต์และยูทิลิตี้ที่แทนที่ยูทิลิตี้ DNS มาตรฐานจาก BIND และ djbdns

ใน s6-rc เวอร์ชันใหม่ ยูทิลิตี s6-rc-compile จะใช้การอ่านข้อมูลเกี่ยวกับการขึ้นต่อกันและชุดบริการจากไดเร็กทอรี แทนที่จะเป็นไฟล์ การใช้ไดเร็กทอรีทำให้การเพิ่มบริการลงในฐานข้อมูลง่ายขึ้นด้วยข้อมูลเกี่ยวกับการพึ่งพาเมื่อติดตั้งโปรแกรมผ่านตัวจัดการแพ็คเกจ เนื่องจากช่วยให้คุณทำได้โดยไม่ต้องทำการเปลี่ยนแปลงไฟล์ การรองรับรูปแบบไฟล์เก่ายังคงอยู่เพื่อให้มั่นใจถึงความเข้ากันได้ ใน s6-linux-init เวอร์ชันใหม่ ตัวเลือก "-S" ได้ถูกเพิ่มลงในยูทิลิตี้ s6-linux-init-maker สำหรับการซิงโครไนซ์ข้อมูลในคอนเทนเนอร์

ที่มา: opennet.ru

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