Za FreeBSD se razvija novi upravitelj sustava, rcd.

Baptiste Daroussin, član FreeBSD Core tima i autor upravitelja paketa pkg, razvija novi upravitelj sustava za FreeBSD - rcd. Upravitelj sustava rcd poziva se procesom init umjesto /etc/rc, čita konfiguracijske datoteke servisa (/etc/rcd.d/*.ucl), gradi stablo ovisnosti i pokreće servise paralelno kad god je to moguće. Zatim prati servise i ponovno ih pokreće ako je potrebno.

Kontrola pozadinskog procesa i operacija s uslugama može se izvršiti izravnim slanjem naredbi u UNIX socket ili korištenjem uslužnog programa naredbenog retka rctl. Jedinične datoteke s parametrima usluga formatirane su u UCL-u, koji nalikuje formatu nginxa i veže konfiguracijske datoteke s elementima posuđenim iz JSON-a radi pojednostavljenja automatizirane obrade. Moguće je stvoriti predloške tipičnih jediničnih datoteka i napisati ugrađene rukovatelje u Lua jeziku. Primjer jedinice datoteke za pokretanje nginxa: 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 = { akcija = "uskrati"; količina = "2g"; }; pcpu = { akcija = "prigušnica"; količina = "80"; }; }

Umjesto korištenja PID datoteka, praćenje aktivnosti pokrenutih procesa vrši se pomoću deskriptora koje vraća sistemski poziv pdfork(). Postoji podrška za aktiviranje usluga samo kada se pristupi mrežnoj utičnici i mogućnost zaštite važnih usluga od prisilnog prekida u slučaju nedostatka memorije. Verzija rcd pozadinskog procesa može se ažurirati u hodu bez gubitka stanja.

rctl se koristi za ograničavanje resursa dostupnih servisu, a servisi se mogu pokretati u zatvorenim okruženjima za potpunu izolaciju. Pristup UNIX kontrolnom utičnici može se konfigurirati za pojedinačne servise. Podržan je način rada za spavanje.

Upravitelj sustava je potpuno unatrag kompatibilan s postojećim sustavom sekvencijalnog pokretanja servisa rc.d i može se koristiti bez mijenjanja postojećih rc.d skripti i konfiguracijskih datoteka. Jednostavno instalirajte rcd na pokrenuti sustav i nakon ponovnog pokretanja sve će nastaviti funkcionirati kao i prije, s izuzetkom smanjenog vremena pokretanja zbog paralelnog pokretanja servisa. Ova kompatibilnost pojednostavit će migraciju sustava na rcd i omogućiti postupnu pretvorbu postojećih rc.d skripti u format datoteke jedinice.

Radi kompatibilnosti s rc.d, podržan je poseban "legacy" tip jedinice. Rcd skenira sadržaj /etc/rc.d/ i /usr/local/etc/rc.d/, analizira zaglavlja PROVIDE/REQUIRE/BEFORE/KEYWORD u skriptama, čita postavke rc.conf i određuje stanje izvršavanja skripte, a zatim obrađuje svaku skriptu kao naslijeđenu virtualnu jedinicu. Kada se koristi naredba rcctl za upravljanje takvim virtualnim jedinicama, operacije se prevode u naslijeđeni format; na primjer, izvršavanje "rcctl reload sshd" pokrenut će "/etc/rc.d/sshd reload."

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster