FreeBSD-д зориулсан rcd хэмээх шинэ системийн менежерийг хөгжүүлж байна.

FreeBSD-ийн гол багийн гишүүн бөгөөд pkg багц менежерийн зохиогч Баптист Даруссин FreeBSD-д зориулсан шинэ системийн менежер болох rcd-г боловсруулж байна. rcd системийн менежерийг /etc/rc-ийн оронд init процесс дуудаж, үйлчилгээний тохиргооны файлуудыг (/etc/rcd.d/*.ucl) уншиж, хамаарлын модыг бүтээж, боломжтой үед үйлчилгээг зэрэгцээ эхлүүлдэг. Дараа нь энэ нь үйлчилгээг хянаж, шаардлагатай бол дахин эхлүүлдэг.

Арын процесс болон үйлчилгээтэй холбоотой үйлдлүүдийг UNIX сокет руу командуудыг шууд дамжуулах эсвэл rctl команд мөрийн хэрэгслийг ашиглан удирдаж болно. Үйлчилгээний параметрүүдтэй нэгж файлуудыг UCL хэлбэрээр форматладаг бөгөөд энэ нь nginx форматтай төстэй бөгөөд автоматжуулсан боловсруулалтыг хялбарчлахын тулд JSON-оос зээлсэн элементүүдтэй тохиргооны файлуудыг холбодог. Ердийн нэгж файлуудын загваруудыг үүсгэж, Lua дээр суурилуулсан боловсруулагчдыг бичих боломжтой. 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"; }; }

PID файлуудыг ашиглахын оронд ажиллаж байгаа процессуудын үйл ажиллагааг хянах нь pdfork() системийн дуудлагаар буцаагдсан тодорхойлогчдыг ашиглан хийгддэг. Зөвхөн сүлжээний сокет руу хандах үед үйлчилгээг идэвхжүүлэхийг дэмждэг бөгөөд санах ой багатай нөхцөлд чухал үйлчилгээг албадан зогсоохоос хамгаалах чадвартай. rcd арын процессын хувилбарыг төлөвөө алдалгүйгээр шууд шинэчлэх боломжтой.

rctl нь үйлчилгээнд байгаа нөөцийг хязгаарлахад ашиглагддаг бөгөөд үйлчилгээг бүрэн тусгаарлахын тулд шоронгийн орчинд ажиллуулж болно. UNIX удирдлагын залгуурт хандах хандалтыг үйлчилгээ тус бүрээр нь тохируулж болно. Унтах горимыг дэмждэг.

Системийн менежер нь одоо байгаа rc.d үйлчилгээний дараалсан эхлүүлэх системтэй бүрэн нийцтэй бөгөөд одоо байгаа rc.d скриптүүд болон тохиргооны файлуудыг өөрчлөхгүйгээр ашиглах боломжтой. Ажиллаж байгаа систем дээр rcd-г суулгахад л хангалттай бөгөөд дахин ачаалсны дараа зэрэгцээ үйлчилгээний эхлүүлэх хугацаа багассанаас бусад бүх зүйл өмнөх шигээ ажиллах болно. Энэхүү нийцтэй байдал нь системийг rcd руу шилжүүлэх ажлыг хялбарчилж, одоо байгаа rc.d скриптүүдийг нэгж файлын формат руу аажмаар хөрвүүлэх боломжийг олгоно.

rc.d-тэй нийцтэй байхын тулд тусгай "хуучин" нэгжийн төрлийг дэмждэг. Rcd нь /etc/rc.d/ болон /usr/local/etc/rc.d/ файлуудын агуулгыг сканнердаж, скриптүүд дэх PROVIDE/REQUIRE/BEFORE/KEYWORD толгой хэсгүүдийг задлан шинжилж, rc.conf тохиргоог уншиж, скриптийн гүйцэтгэлийн төлөвийг тодорхойлж, дараа нь скрипт бүрийг хуучин виртуал нэгж болгон боловсруулдаг. Ийм виртуал нэгжүүдийг удирдахын тулд rcctl командыг ашиглах үед үйлдлүүд нь хуучин формат руу хөрвүүлэгддэг; жишээлбэл, "rcctl reload sshd" командыг гүйцэтгэхэд "/etc/rc.d/sshd reload" командыг ажиллуулна.

Эх сурвалж: opennet.ru

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster