Rilis sistem init GNU Shepherd 0.9

Dua tahun setelah pembentukan rilis penting terakhir, manajer layanan GNU Shepherd 0.9 (sebelumnya dmd) diterbitkan, yang sedang dikembangkan oleh pengembang distribusi Sistem GNU Guix sebagai alternatif dari sistem inisialisasi SysV-init yang mendukung dependensi . Daemon dan utilitas kontrol Shepherd ditulis dalam bahasa Guile (salah satu implementasi bahasa Skema), yang juga digunakan untuk menentukan pengaturan dan parameter untuk meluncurkan layanan. Shepherd sudah digunakan dalam distribusi GuixSD GNU/Linux dan juga ditujukan untuk digunakan di GNU/Hurd, tetapi dapat berjalan pada OS apa pun yang mendukung POSIX dan bahasa Guile tersedia.

Shepherd melakukan pekerjaan memulai dan menghentikan layanan dengan mempertimbangkan hubungan antar layanan, secara dinamis mengidentifikasi dan memulai layanan yang menjadi sandaran layanan yang dipilih. Shepherd juga mendukung pendeteksian konflik antar layanan dan mencegahnya berjalan secara bersamaan. Proyek ini dapat digunakan baik sebagai sistem inisialisasi utama (init dengan PID 1), dan dalam bentuk terpisah untuk mengelola proses latar belakang pengguna individu (misalnya, untuk menjalankan tor, privoxy, mcron, dll.) dengan eksekusi dengan hak dari pengguna ini.

Inovasi utama:

  • Menerapkan konsep layanan sementara (sementara), yang secara otomatis dinonaktifkan setelah selesai karena penghentian proses atau pemanggilan metode "berhenti", yang mungkin diperlukan untuk layanan yang disintesis yang tidak dapat dimulai ulang setelah dimatikan.
  • Untuk membuat layanan seperti inetd, prosedur β€œmake-inetd-constructor” telah ditambahkan.
  • Untuk membuat layanan yang diaktifkan selama aktivitas jaringan (dalam gaya aktivasi soket systemd), prosedur β€œmake-systemd-constructor” telah ditambahkan.
  • Prosedur tambahan untuk memulai layanan di latar belakang - β€œmulai di latar belakang”.
  • Menambahkan parameter ":supplementary-groups", "#:create-session" dan "#:resource-limits" ke prosedur "make-forkexec-constructor".
  • Mengaktifkan operasi tanpa pemblokiran sambil menunggu file PID.
  • Untuk layanan tanpa parameter β€œ#:log-file”, output ke syslog disediakan, dan untuk layanan dengan parameter #:log-file, log ditulis ke file terpisah yang menunjukkan waktu perekaman. Log dari proses penggembala tanpa hak istimewa disimpan di direktori $XDG_DATA_DIR.
  • Dukungan untuk membangun dengan Guile 2.0 telah dihentikan. Masalah saat menggunakan Guile versi 3.0.5-3.0.7 telah teratasi.
  • Perpustakaan Fibers 1.1.0 atau yang lebih baru sekarang diperlukan untuk berfungsi.

Sumber: opennet.ru

Tambah komentar