Baptiste Daroussin, mwanachama wa Timu ya FreeBSD Core na mwandishi wa meneja wa kifurushi cha pkg, anatengeneza meneja mpya wa mfumo wa FreeBSD—rcd. Meneja wa mfumo wa rcd huitwa na mchakato wa init badala ya /etc/rc, husoma faili za usanidi wa huduma (/etc/rcd.d/*.ucl), huunda mti wa utegemezi, na huanza huduma sambamba inapowezekana. Kisha hufuatilia huduma na kuzianzisha upya inapohitajika.
Udhibiti wa mchakato wa usuli na shughuli na huduma unaweza kufanywa kwa kutuma amri moja kwa moja kwenye soketi ya UNIX au kwa kutumia huduma ya mstari wa amri ya rctl. Faili za kitengo zenye vigezo vya huduma zimeundwa katika UCL, ambayo inafanana na umbizo la nginx na kufunga faili za usanidi na vipengele vilivyokopwa kutoka JSON ili kurahisisha usindikaji otomatiki. Inawezekana kuunda violezo vya faili za kawaida za kitengo na kuandika vidhibiti vilivyojengewa ndani katika Lua. Mfano wa faili ya kitengo cha kuanzisha nginx: jina = "nginx"; maelezo = "Seva ya HTTP ya Nginx"; aina = "rahisi"; amri = "/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"; }; }
Badala ya kutumia faili za PID, kufuatilia shughuli za michakato inayoendeshwa hufanywa kwa kutumia maelezo yanayorejeshwa na simu ya mfumo wa pdfork(). Kuna usaidizi wa kuwasha huduma tu wakati soketi ya mtandao inafikiwa na uwezo wa kulinda huduma muhimu kutokana na kusitishwa kwa lazima iwapo hali ya kumbukumbu itakuwa chini. Toleo la mchakato wa usuli wa rcd linaweza kusasishwa mara moja bila kupoteza hali.
rctl hutumika kupunguza rasilimali zinazopatikana kwa huduma, na huduma zinaweza kuendeshwa katika mazingira ya gerezani kwa ajili ya kutengwa kabisa. Ufikiaji wa soketi ya udhibiti ya UNIX unaweza kusanidiwa kwa huduma za kibinafsi. Hali ya usingizi inaungwa mkono.
Kidhibiti cha mfumo kinaendana kikamilifu na mfumo uliopo wa kuanzisha huduma ya rc.d unaofuatana na kinaweza kutumika bila kurekebisha hati na faili za usanidi zilizopo za rc.d. Sakinisha tu rcd kwenye mfumo unaoendesha, na baada ya kuwasha upya, kila kitu kitaendelea kufanya kazi kama hapo awali, isipokuwa muda uliopunguzwa wa kuwasha kutokana na kuanzisha huduma sambamba. Utangamano huu utarahisisha uhamishaji wa mifumo hadi rcd na kuruhusu ubadilishaji wa taratibu wa hati zilizopo za rc.d hadi umbizo la faili la kitengo.
Kwa utangamano na rc.d, aina maalum ya kitengo cha "legacy" inatumika. Rcd huchanganua yaliyomo kwenye /etc/rc.d/ na /usr/local/etc/rc.d/, huchanganua vichwa vya habari vya PROVIDE/REQUIRE/BEFORE/KEYWORD katika hati, husoma mipangilio ya rc.conf, na huamua hali ya utekelezaji wa hati, kisha huchakata kila hati kama kitengo pepe cha zamani. Unapotumia amri ya rcctl kudhibiti vitengo pepe hivyo, shughuli hutafsiriwa katika umbizo la zamani; kwa mfano, kutekeleza "rcctl reload sshd" kutaendesha "/etc/rc.d/sshd reload."
Chanzo: opennet.ru
