מנהל מערכת חדש, rcd, מפותח עבור FreeBSD.

בפטיסט דארוסין, חבר בצוות הליבה של FreeBSD ומחבר מנהל החבילות pkg, מפתח מנהל מערכת חדש עבור FreeBSD - rcd. מנהל המערכת rcd מופעל על ידי תהליך init במקום /etc/rc, קורא קבצי תצורת שירות (/etc/rcd.d/*.ucl), בונה עץ תלויות, ומפעיל שירותים במקביל בכל הזדמנות אפשרית. לאחר מכן הוא מנטר את השירותים ומפעיל אותם מחדש במידת הצורך.

שליטה בתהליך הרקע ובפעולות עם שירותים יכולה להתבצע על ידי שידור ישיר של פקודות לשקע UNIX או באמצעות כלי שורת הפקודה rctl. קבצי יחידה עם פרמטרי שירות מעוצבים בפורמט UCL, הדומה לפורמט של nginx ומקשרים קבצי תצורה עם אלמנטים שאולים מ-JSON כדי לפשט את העיבוד האוטומטי. ניתן ליצור תבניות של קבצי יחידה אופייניים ולכתוב מטפלים מובנים ב-Lua. דוגמה לקובץ יחידה להפעלת nginx: name = "nginx"; description = "שרת HTTP של Nginx"; type = "simple"; command = "/usr/local/sbin/nginx"; command_args = "-g 'daemon off;'"; provides = ["nginx", "http"]; requires = ["NETWORKING", "sshd"]; restart { policy = "always"; max_retries = 10; delay = 2000; backoff = "linear"; } process { user = "www"; group = "www"; cpuset = "0-3"; } rctl { memoryuse = { action = "deny"; amount = "2g"; }; pcpu = { action = "throttle"; amount = "80"; }; }

במקום להשתמש בקבצי PID, מעקב אחר פעילות התהליכים הפועלים מתבצע באמצעות תיאורים המוחזרים על ידי קריאת המערכת pdfork(). יש תמיכה בהפעלת שירותים רק כאשר נגישה לשקע רשת ויכולת להגן על שירותים חשובים מפני סיום כפוי במקרה של תנאי זיכרון חלשים. ניתן לעדכן את גרסת תהליך הרקע rcd תוך כדי תנועה מבלי לאבד מצב.

rctl משמש להגבלת המשאבים הזמינים לשירות, וניתן להריץ שירותים בסביבות כלואות לבידוד מוחלט. ניתן להגדיר גישה לשקע הבקרה של UNIX עבור שירותים בודדים. מצב שינה נתמך.

מנהל המערכת תואם לחלוטין לאחור עם מערכת האתחול הרציפה הקיימת של שירות rc.d וניתן להשתמש בו מבלי לשנות סקריפטים וקבצי תצורה קיימים של rc.d. פשוט התקן את rcd על מערכת פעילה, ולאחר אתחול מחדש, הכל ימשיך לתפקד כמקודם, למעט זמני אתחול קצרים יותר עקב אתחול מקבילי של שירות. תאימות זו תפשט את העברת המערכות ל-rcd ותאפשר המרה הדרגתית של סקריפטים קיימים של rc.d לפורמט קובץ יחידה.

לצורך תאימות עם rc.d, נתמך סוג יחידה מיוחד מסוג "legacy". ‏Rcd סורק את התוכן של ‎/etc/rc.d/‎ ו-‎/usr/local/etc/rc.d/‎, מנתח כותרות PROVIDE/REQUIRE/BEFORE/KEYWORD בסקריפטים, קורא הגדרות rc.conf וקובע את מצב ביצוע הסקריפט, ולאחר מכן מעבד כל סקריפט כיחידה וירטואלית מדור קודם. בעת שימוש בפקודה rcctl לניהול יחידות וירטואליות כאלה, הפעולות מתורגמות לפורמט הקודם; לדוגמה, ביצוע "rcctl reload sshd" יריץ את "/etc/rc.d/sshd reload".

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster