En ny systemförvaltare rcd utvecklas för FreeBSD

Baptiste Daroussin, medlem av FreeBSD Core Team och författare av pakethanteraren pkg, utvecklar en ny systemhanterare för FreeBSD — rcd. Systemhanteraren rcd anropas av init-processen istĂ€llet för /etc/rc, lĂ€ser konfigurationsfiler för tjĂ€nster (/etc/rcd.d/*.ucl), bygger ett beroendetrĂ€d och startar tjĂ€nster sĂ„ mycket som möjligt parallellt med varandra, varefter den övervakar tjĂ€nsternas arbete och om nödvĂ€ndigt startar om dem.

Hantera bakgrundsprocesser och tjÀnsteoperationer kan ske genom att direkt skicka kommandon till UNIX-socketen eller med hjÀlp av kommandoradsverktyget rctl. Enhetsfiler med tjÀnsteparametrar utformas i UCL-format, som pÄminner om konfigurationsfiler för nginx och bind med element för förenklad automatiserad bearbetning, lÄnat frÄn JSON. Det finns möjlighet att skapa mallar för typiska enhetsfiler och skriva inbyggda bearbetare pÄ Lua. Exempel pÄ en enhetsfil för att starta nginx: name = "nginx"; description = "Nginx HTTP Server"; 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"; }; }

IstÀllet för att arbeta med PID-filer övervakas aktiviteten hos körande processer med hjÀlp av deskriptorer som returneras av systemanropet pdfork(). Det finns stöd för att aktivera tjÀnster endast vid begÀran till nÀtverksocketen och möjligheten att skydda viktiga tjÀnster frÄn tvÄngsavstÀngning i hÀndelse av minnesbrist i systemet. Det Àr möjligt att uppdatera versionen av bakgrundsprocessen rcd i realtid utan att förlora tillstÄndet.

För att begrĂ€nsa de resurser som tjĂ€nsten har tillgĂ„ng till anvĂ€nds rctl, och för fullstĂ€ndig isolering av tjĂ€nster stödjer man deras start i jail-miljöer. Åtkomst till den styrande UNIX-socketen kan konfigureras för att vara kopplad till specifika tjĂ€nster. Det finns stöd för att övergĂ„ i vilolĂ€ge.

Systemhanteraren Àr helt bakÄtkompatibel med det befintliga systemet för sekventiell start av tjÀnster rc.d och kan fungera utan att Àndra de befintliga rc.d-skript och konfigurationsfiler. Det rÀcker med att installera rcd pÄ ett fungerande system, och efter en omstart fortsÀtter allt att fungera som tidigare, förutom att laddningstiden förkortas genom att starta tjÀnster parallellt. Denna kompatibilitet kommer att förenkla migreringen av system till rcd och möjliggöra en gradvis övergÄng av befintliga rc.d-skript till enhetstexter.

För kompatibilitet med rc.d stöds en sÀrskild typ av enheter "legacy". Rcd skannar innehÄllet i /etc/rc.d/ och /usr/local/etc/rc.d/, analyserar rubrikerna PROVIDE/REQUIRE/BEFORE/KEYWORD i skripten, lÀser instÀllningarna i rc.conf och faststÀller statusen för skriftens start, för att sedan behandla varje skript som en virtuell legacy-enhet. Vid anvÀndning av kommandot rcctl för att hantera dessa virtuella enheter översÀtts operationerna till det gamla formatet, till exempel, kommandot "rcctl reload sshd" kommer att leda till att " /etc/rc.d/sshd reload" körs.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster