إطلاق نظام GNU Shepherd 0.8 init

متاح مدير الخدمة GNU Shepherd 0.8 تحديث (دي ام دي السابق)، والذي يتم تطويره بواسطة مطوري توزيعة GNU Guix System كبديل مدرك للتبعية لنظام تهيئة SysV-init. تتم كتابة البرنامج الخفي والأدوات المساعدة للتحكم في Shepherd بلغة Guile (أحد تطبيقات لغة المخطط)، والتي تُستخدم أيضًا لتحديد الإعدادات والمعلمات لبدء الخدمات. يتم استخدام Shepherd بالفعل في توزيعة GuixSD GNU/Linux ويهدف أيضًا إلى استخدامه في GNU/Hurd، ولكن يمكن تشغيله على أي نظام تشغيل متوافق مع POSIX تتوفر له لغة Guile.

يمكن استخدام Shepherd كنظام التهيئة الرئيسي (init مع 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

إضافة تعليق