مدیر سرویس GNU Shepherd 0.9.2 (dmd سابق) منتشر شده است که توسط توسعه دهندگان توزیع سیستم GNU Guix به عنوان جایگزینی برای سیستم اولیه سازی SysV-init که از وابستگی ها پشتیبانی می کند در حال توسعه است. شبح کنترل Shepherd و ابزارهای کمکی به زبان Guile (یکی از پیاده سازی های زبان Scheme) نوشته شده اند که برای تعریف تنظیمات و پارامترهای راه اندازی سرویس ها نیز استفاده می شود. Shepherd قبلاً در توزیع GuixSD GNU/Linux استفاده میشود و همچنین هدف آن استفاده در GNU/Hurd است، اما میتواند روی هر سیستمعامل سازگار با POSIX که زبان Guile برای آن موجود است اجرا شود.
شپرد کار شروع و توقف خدمات را با در نظر گرفتن روابط بین سرویس ها انجام می دهد، به صورت پویا خدماتی را که سرویس انتخابی به آن بستگی دارد، شناسایی و شروع می کند. Shepherd همچنین از شناسایی تضاد بین سرویس ها و جلوگیری از اجرای همزمان آنها پشتیبانی می کند. این پروژه می تواند هم به عنوان سیستم اولیه اولیه (init با PID 1) و هم در یک فرم جداگانه برای مدیریت فرآیندهای پس زمینه تک تک کاربران (به عنوان مثال برای اجرای tor، خصوصی، mcron و غیره) با اجرا با حقوق استفاده شود. از این کاربران
از جمله تغییرات:
- توصیفکنندههای فایل مورد استفاده در Shepherd اکنون با پرچم O_CLOEXEC (close-on-exec) علامتگذاری میشوند تا اینکه بلافاصله پس از اجرای یک فرمان exec بسته شوند، و این امکان را میدهد تا دستهها به سرویسهایی که بهطور غیرمستقیم توسط یک فرمان exec شروع شدهاند، ارسال شوند.
- اتصالات کلاینت اکنون به روشی غیر مسدود کننده پردازش می شود، که از معلق ماندن شپرد هنگام ارسال یک فرمان ناقص جلوگیری می کند.
- اطمینان حاصل می کند که یک دایرکتوری برای فایل های گزارش تعریف شده در تنظیمات "log-file" در صورتی که وجود نداشته باشد ایجاد شده است.
منبع: opennet.ru