GNU Shepherd 0.8 init системийн хувилбар

Боломжтой үйлчилгээний менежер GNU Shepherd 0.8 (хуучин dmd), GNU Guix системийн түгээлтийн хөгжүүлэгчид SysV-init эхлүүлэх системийн хараат байдлыг мэддэг хувилбар болгон хөгжүүлж байна. Хоньчны хяналтын демон болон хэрэгслүүд нь Guile хэлээр бичигдсэн (Схем хэлний хэрэгжилтийн нэг) бөгөөд энэ нь үйлчилгээг эхлүүлэх тохиргоо болон параметрүүдийг тодорхойлоход хэрэглэгддэг. Shepherd нь GuixSD GNU/Linux түгээлтэд аль хэдийн ашиглагдаж байгаа бөгөөд GNU/Hurd-д ашиглахад зориулагдсан боловч Guile хэлийг ашиглах боломжтой ямар ч POSIX-тэй нийцтэй үйлдлийн систем дээр ажиллах боломжтой.

Shepherd-ийг үндсэн эхлүүлэх систем (PID 1-тэй эхлүүлнэ) болон тусдаа хэлбэрээр ашиглаж болох бөгөөд тус тусад нь хэрэглэгчийн арын процессыг удирдах (жишээлбэл, tor, privoxy, mcron гэх мэт) эрхтэйгээр ашиглаж болно. эдгээр хэрэглэгчид. Shepherd нь үйлчилгээг эхлүүлэх, зогсоох ажлыг үйлчилгээ хоорондын хамаарлыг харгалзан, сонгосон үйлчилгээнээс хамаарах үйлчилгээг динамикаар тодорхойлж, эхлүүлэх ажлыг гүйцэтгэдэг. Мөн Shepherd үйлчилгээ хоорондын зөрчилдөөнийг илрүүлж, зэрэг ажиллуулахаас сэргийлдэг.

Гол инноваци:

  • Make-kill-destructor нь бүлэг процессуудыг устгадаг;
  • PID файл үүсгэх хүлээх хугацааг тодорхойлдог "default-pid-file-timeout" параметрийг нэмсэн;
  • Хэрэв PID файл хугацаа хэтэрсэн хугацаанд гарч ирэхгүй бол процессын бүлэг бүхэлдээ дуусгавар болно (шийднэ асуудал PID файлгүйгээр ажлын процессуудыг орхих);
  • “make-forkexec-constructor”-д “#:file-creation-mask” параметрийг нэмж, бүртгэлийн файл үүсгэхийг хэрэгжүүлж, хуучин дуудлагын конвенцийг дэмжихээ больсон;
  • GNU/Hurd гэх мэт prctl-гүй системүүд дээр эмхэтгэлтэй холбоотой асуудлуудыг шийдсэн;
  • SIGALRM-г секунд тутамд илгээдэг асуудлыг зассан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх