Manajer sistem baru, rcd, sedang dikembangkan untuk FreeBSD.

Baptiste Daroussin, anggota Tim Inti FreeBSD dan penulis pengelola paket pkg, sedang mengembangkan pengelola sistem baru untuk FreeBSD—rcd. Pengelola sistem rcd dipanggil oleh proses init sebagai pengganti /etc/rc, membaca file konfigurasi layanan (/etc/rcd.d/*.ucl), membangun pohon dependensi, dan memulai layanan secara paralel jika memungkinkan. Kemudian, ia memantau layanan dan memulai ulang layanan tersebut jika perlu.

Pengendalian proses latar belakang dan operasi dengan layanan dapat dilakukan dengan mengirimkan perintah langsung ke soket UNIX atau menggunakan utilitas baris perintah rctl. File unit dengan parameter layanan diformat dalam UCL, yang menyerupai format nginx dan mengikat file konfigurasi dengan elemen yang dipinjam dari JSON untuk menyederhanakan pemrosesan otomatis. Dimungkinkan untuk membuat templat file unit tipikal dan menulis penangan bawaan dalam Lua. Contoh file unit untuk memulai 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"; }; }

Alih-alih menggunakan file PID, pelacakan aktivitas proses yang berjalan dilakukan menggunakan deskriptor yang dikembalikan oleh panggilan sistem pdfork(). Terdapat dukungan untuk mengaktifkan layanan hanya ketika soket jaringan diakses dan kemampuan untuk melindungi layanan penting dari penghentian paksa jika terjadi kondisi memori rendah. Versi proses latar belakang rcd dapat diperbarui secara langsung tanpa kehilangan status.

rctl digunakan untuk membatasi sumber daya yang tersedia untuk suatu layanan, dan layanan dapat dijalankan di lingkungan terisolasi (jailed environment) untuk isolasi total. Akses ke soket kontrol UNIX dapat dikonfigurasi untuk setiap layanan. Mode tidur (sleep mode) didukung.

Manajer sistem ini sepenuhnya kompatibel dengan sistem startup sekuensial layanan rc.d yang ada dan dapat digunakan tanpa memodifikasi skrip dan file konfigurasi rc.d yang ada. Cukup instal rcd pada sistem yang sedang berjalan, dan setelah reboot, semuanya akan terus berfungsi seperti sebelumnya, kecuali waktu booting yang lebih singkat karena startup layanan yang diparalelkan. Kompatibilitas ini akan menyederhanakan migrasi sistem ke rcd dan memungkinkan konversi bertahap skrip rc.d yang ada ke format file unit.

Untuk kompatibilitas dengan rc.d, tipe unit "legacy" khusus didukung. Rcd memindai isi /etc/rc.d/ dan /usr/local/etc/rc.d/, mengurai header PROVIDE/REQUIRE/BEFORE/KEYWORD dalam skrip, membaca pengaturan rc.conf, dan menentukan status eksekusi skrip, kemudian memproses setiap skrip sebagai unit virtual legacy. Saat menggunakan perintah rcctl untuk mengelola unit virtual tersebut, operasi diterjemahkan ke dalam format legacy; misalnya, menjalankan "rcctl reload sshd" akan menjalankan "/etc/rc.d/sshd reload."

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster