Pro FreeBSD se vyvíjí nový systémový správce rcd.

Baptiste Daroussin, člen FreeBSD Core Team a autor správce balíčků pkg, rozvíjí nový správce systémů pro FreeBSD - rcd. Systémový správce rcd je volán init procesem místo /etc/rc, čte konfigurační soubory služeb (/etc/rcd.d/*.ucl), vytváří strom závislostí a spouští služby co nejvíce paralelně, poté sleduje činnost služeb a v případě potřeby je restartuje.

Správa pozadových procesů a operace se službami mohou být prováděny prostřednictvím přímého přenosu příkazů do UNIX socketu nebo pomocí příkazové utility rctl. Unit soubory s parametry služeb jsou formátovány v UCL, který připomíná formát konfiguračních souborů nginx a bind s prvky pro usnadnění automatizovaného zpracování, převzatými z JSON. Je poskytována možnost vytváření šablon typických unit souborů a psaní vestavěných zpracovatelů v jazyce Lua. Příklad unit souboru pro spuštění 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"; }; }

Namísto práce s PID soubory je sledování aktivity spuštěných procesů prováděno pomocí deskriptorů vracených systémovým voláním pdfork(). Existuje podpora pro aktivaci služeb pouze při přístupu k síťovému socketu a možnost chránit důležité služby před nuceným ukončením v případě nedostatku paměti v systému. Je možné aktualizovat verzi pozadového procesu rcd za chodu bez ztráty stavu.

Pro omezení dostupných prostředků pro službu se používá rctl, a pro úplnou izolaci služeb se podporuje jejich spuštění v jail prostředích. Je možná konfigurace přístupu k ovládacímu UNIX socketu vázané na jednotlivé služby. Podporuje se přechod do spánkového režimu.

Systémový správce je plně zpětně kompatibilní se stávajícím systémem sekvenčního spuštění služeb rc.d a může fungovat bez změn existujících rc.d skriptů a konfiguračních souborů. Stačí nainstalovat rcd do běžícího systému a po restartu vše bude pokračovat v chodu jako dříve, s výjimkou zkrácení doby spuštění díky paralelizaci spuštění služeb. Taková kompatibilita usnadní migraci systémů na rcd a umožní postupný přechod stávajících rc.d skriptů na formát unit souborů.

Pro kompatibilitu s rc.d se podporuje speciální typ jednotek „legacy“. Rcd skenuje obsah /etc/rc.d/ a /usr/local/etc/rc.d/, zpracovává hlavičky PROVIDE/REQUIRE/BEFORE/KEYWORD ve skriptech, čte nastavení rc.conf a určuje stav spuštění skriptů, poté zpracovává každý skript jako virtuální legacy jednotku. Při použití příkazu rcctl pro správu těchto virtuálních jednotek jsou operace překládány do starého formátu, například provedení „rcctl reload sshd“ způsobí spuštění „/etc/rc.d/sshd reload“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster