دو سال پس از تشکیل آخرین نسخه قابل توجه، مدیر سرویس GNU Shepherd 0.9 (Dmd سابق) منتشر شد که توسط توسعه دهندگان توزیع سیستم GNU Guix به عنوان جایگزینی برای سیستم اولیه SysV-init که از وابستگی ها پشتیبانی می کند، در حال توسعه است. . شبح کنترل Shepherd و ابزارهای کمکی به زبان Guile (یکی از پیاده سازی های زبان Scheme) نوشته شده اند که برای تعریف تنظیمات و پارامترهای راه اندازی سرویس ها نیز استفاده می شود. Shepherd قبلاً در توزیع GuixSD GNU/Linux استفاده میشود و همچنین هدف آن استفاده در GNU/Hurd است، اما میتواند روی هر سیستمعامل سازگار با POSIX که زبان Guile برای آن موجود است اجرا شود.
شپرد کار شروع و توقف خدمات را با در نظر گرفتن روابط بین سرویس ها انجام می دهد، به صورت پویا خدماتی را که سرویس انتخابی به آن بستگی دارد، شناسایی و شروع می کند. Shepherd همچنین از شناسایی تضاد بین سرویس ها و جلوگیری از اجرای همزمان آنها پشتیبانی می کند. این پروژه می تواند هم به عنوان سیستم اولیه اولیه (init با PID 1) و هم در یک فرم جداگانه برای مدیریت فرآیندهای پس زمینه تک تک کاربران (به عنوان مثال برای اجرای tor، خصوصی، mcron و غیره) با اجرا با حقوق استفاده شود. از این کاربران
نوآوری های اصلی:
- مفهوم سرویسهای موقت (گذرا) پیادهسازی میشود، پس از اتمام بهدلیل خاتمه فرآیند یا فراخوانی روش «توقف» بهطور خودکار غیرفعال میشود، که ممکن است برای سرویسهای سنتز شده که پس از خاموش شدن قابل راهاندازی مجدد نیستند، مورد نیاز باشد.
- برای ایجاد سرویسهای inetd مانند، رویه make-inetd-constructor اضافه شده است.
- برای ایجاد سرویسهایی که در طول فعالیت شبکه فعال میشوند (در سبک فعالسازی سوکت سیستم)، رویه «make-systemd-constructor» اضافه شده است.
- روش اضافه شده برای شروع یک سرویس در پس زمینه - "شروع در پس زمینه".
- پارامترهای ":suplementary-groups"، "#:create-session" و "#:resource-limits" به رویه "make-forkeexec-constructor" اضافه شد.
- هنگام انتظار برای فایلهای PID، عملیات بدون مسدود کردن فعال شد.
- برای سرویسهای بدون پارامتر "#:log-file"، خروجی به syslog ارائه میشود و برای سرویسهایی با پارامتر #:log-file، گزارش در فایل جداگانهای نوشته میشود که زمان ضبط را نشان میدهد. گزارشهای مربوط به فرآیند شپرد غیرمجاز در فهرست راهنمای $XDG_DATA_DIR ذخیره میشوند.
- پشتیبانی از ساخت با Guile 2.0 متوقف شده است. مشکلات استفاده از Guile نسخه های 3.0.5-3.0.7 برطرف شده است.
- اکنون برای کار کردن به کتابخانه Fibers 1.1.0 یا جدیدتر نیاز است.
منبع: opennet.ru