„FreeBSD“ kuriamas naujas sistemos tvarkytuvas „rcd“.

Baptiste Daroussin, „FreeBSD Core Team“ narys ir „pkg“ paketų tvarkyklės autorius, kuria naują „FreeBSD“ sistemos tvarkyklę – rcd. „rcd“ sistemos tvarkyklę iškviečia init procesas, o ne /etc/rc, ji nuskaito paslaugų konfigūracijos failus (/etc/rcd.d/*.ucl), sukuria priklausomybių medį ir, kai tik įmanoma, lygiagrečiai paleidžia paslaugas. Tada ji stebi paslaugas ir, jei reikia, jas paleidžia iš naujo.

Foninio proceso ir operacijų su paslaugomis valdymas gali būti atliekamas tiesiogiai perduodant komandas į UNIX lizdą arba naudojant komandinės eilutės įrankį „rctl“. Vienetų failai su paslaugų parametrais formatuojami UCL kalba, kuri primena „nginx“ formatą, ir susieja konfigūracijos failus su elementais, pasiskolintais iš JSON, siekiant supaprastinti automatizuotą apdorojimą. Galima kurti tipiškų vienetų failų šablonus ir rašyti integruotas tvarkykles „Lua“ kalba. Vienetų failo, skirto paleisti „nginx“, pavyzdys: 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"; }; }

Užuot naudojus PID failus, veikiančių procesų aktyvumas stebimas naudojant deskriptorius, kuriuos grąžina pdfork() sistemos iškvietimas. Yra palaikymas paslaugų aktyvavimui tik tada, kai pasiekiamas tinklo lizdas, ir galimybė apsaugoti svarbias paslaugas nuo priverstinio nutraukimo esant mažai atminties. RCD foninio proceso versiją galima atnaujinti operatyviai neprarandant būsenos.

„rctl“ naudojamas norint apriboti paslaugos išteklius, o paslaugos gali būti vykdomos uždarose aplinkose, kad būtų visiškai izoliuotos. Prieigą prie UNIX valdymo lizdo galima konfigūruoti atskiroms paslaugoms. Palaikomas miego režimas.

Sistemos tvarkyklė yra visiškai suderinama su esama nuoseklaus paleidimo rc.d paslauga ir gali būti naudojama nemodifikuojant esamų rc.d skriptų ir konfigūracijos failų. Tiesiog įdiekite rcd veikiančioje sistemoje ir po perkrovimo viskas veiks kaip anksčiau, išskyrus sutrumpėjusį paleidimo laiką dėl lygiagretaus paslaugos paleidimo. Šis suderinamumas supaprastins sistemų perkėlimą į rcd ir leis palaipsniui konvertuoti esamus rc.d skriptus į vienetinį failų formatą.

Siekiant suderinamumo su rc.d, palaikomas specialus „senasis“ vieneto tipas. Rcd nuskaito /etc/rc.d/ ir /usr/local/etc/rc.d/ turinį, analizuoja PROVIDE/REQUIRE/BEFORE/KEYWORD antraštes scenarijuose, nuskaito rc.conf nustatymus ir nustato scenarijaus vykdymo būseną, tada apdoroja kiekvieną scenarijų kaip senąjį virtualųjį vienetą. Naudojant rcctl komandą tokiems virtualiesiems vienetams valdyti, operacijos verčiamos į senąjį formatą; pavyzdžiui, vykdant „rcctl reload sshd“, bus paleista „/etc/rc.d/sshd reload“.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster