En ny systemadministrator, rcd, er under udvikling til FreeBSD.

Baptiste Daroussin, et medlem af FreeBSD Core Team og forfatter til pakkehåndteringen pkg, udvikler en ny systemhåndtering til FreeBSD — rcd. Systemhåndteringen rcd kaldes af init-processen i stedet for /etc/rc, læser servicekonfigurationsfiler (/etc/rcd.d/*.ucl), bygger et afhængighedstræ og starter tjenester parallelt, når det er muligt. Den overvåger derefter tjenesterne og genstarter dem, hvis det er nødvendigt.

Kontrol af baggrundsprocessen og operationer med tjenester kan udføres ved direkte at sende kommandoer til en UNIX-socket eller ved hjælp af kommandolinjeværktøjet rctl. Enhedsfiler med serviceparametre er formateret i UCL, som ligner formatet for nginx og binder konfigurationsfiler med elementer lånt fra JSON for at forenkle automatiseret behandling. Det er muligt at oprette skabeloner af typiske enhedsfiler og skrive indbyggede handlere i Lua. Et eksempel på en enhedsfil til start af nginx: name = "nginx"; description = "Nginx HTTP Server"; type = "simple"; command = "/usr/local/sbin/nginx"; command_args = "-g 'daemon off;'"; provides = ["nginx", "http"]; requires = ["NETVÆRK", "sshd"]; restart { policy = "always"; max_retries = 10; delay = 2000; backoff = "linear"; } process { user = "www"; group = "www"; cpuset = "0-3"; } rctl { memoryuse = { action = "benægte"; amount = "2g"; }; pcpu = { action = "drottle"; amount = "80"; }; } ...

I stedet for at bruge PID-filer udføres sporing af aktiviteten af ​​kørende processer ved hjælp af deskriptorer, der returneres af systemkaldet pdfork(). Der er understøttelse af kun at aktivere tjenester, når en netværkssocket tilgås, og muligheden for at beskytte vigtige tjenester mod tvungen afbrydelse i tilfælde af lav hukommelse. Baggrundsprocesversionen af ​​rcd kan opdateres løbende uden at miste tilstand.

rctl bruges til at begrænse de ressourcer, der er tilgængelige for en tjeneste, og tjenester kan køres i jailed-miljøer for fuldstændig isolation. Adgang til UNIX-kontrolsockelen kan konfigureres for individuelle tjenester. Dvaletilstand understøttes.

Systemadministratoren er fuldt bagudkompatibel med det eksisterende rc.d-service sekventielle opstartssystem og kan bruges uden at ændre eksisterende rc.d-scripts og konfigurationsfiler. Du skal blot installere rcd på et kørende system, og efter en genstart vil alt fortsætte med at fungere som før, med undtagelse af reducerede opstartstider på grund af paralleliseret serviceopstart. Denne kompatibilitet vil forenkle migreringen af ​​systemer til rcd og muliggøre gradvis konvertering af eksisterende rc.d-scripts til enhedsfilformat.

For kompatibilitet med rc.d understøttes en særlig "legacy" enhedstype. Rcd scanner indholdet af /etc/rc.d/ og /usr/local/etc/rc.d/, analyserer PROVIDE/REQUIRE/BEFORE/KEYWORD headers i scripts, læser rc.conf-indstillinger og bestemmer scriptets udførelsesstatus, hvorefter hvert script behandles som en ældre virtuel enhed. Når rcctl-kommandoen bruges til at administrere sådanne virtuelle enheder, oversættes handlinger til det ældre format; for eksempel vil udførelse af "rcctl reload sshd" køre "/etc/rc.d/sshd reload".

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster