Keluaran sistem init GNU Shepherd 0.9

Dua tahun selepas pembentukan keluaran penting terakhir, pengurus perkhidmatan GNU Shepherd 0.9 (dahulunya dmd) telah diterbitkan, yang sedang dibangunkan oleh pembangun pengedaran Sistem GNU Guix sebagai alternatif kepada sistem permulaan SysV-init yang menyokong kebergantungan . Daemon dan utiliti kawalan Shepherd ditulis dalam bahasa Guile (salah satu pelaksanaan bahasa Skim), yang juga digunakan untuk menentukan tetapan dan parameter untuk melancarkan perkhidmatan. Shepherd telah digunakan dalam pengedaran GuixSD GNU/Linux dan juga bertujuan untuk digunakan dalam GNU/Hurd, tetapi boleh dijalankan pada mana-mana OS yang mematuhi POSIX yang bahasa Guile tersedia.

Shepherd melakukan kerja memulakan dan menghentikan perkhidmatan dengan mengambil kira perhubungan antara perkhidmatan, mengenal pasti dan memulakan perkhidmatan yang bergantung kepada perkhidmatan yang dipilih secara dinamik. Shepherd juga menyokong pengesanan konflik antara perkhidmatan dan menghalangnya daripada berjalan serentak. Projek ini boleh digunakan sebagai sistem permulaan utama (init dengan PID 1), dan dalam bentuk berasingan untuk mengurus proses latar belakang pengguna individu (contohnya, untuk menjalankan tor, privoxy, mcron, dll.) dengan pelaksanaan dengan hak daripada pengguna ini.

Inovasi utama:

  • Konsep perkhidmatan sementara (sementara) dilaksanakan, dilumpuhkan secara automatik selepas selesai kerana penamatan proses atau panggilan kaedah "berhenti", yang mungkin diperlukan untuk perkhidmatan tersintesis yang tidak boleh dimulakan semula selepas penutupan.
  • Untuk mencipta perkhidmatan seperti inetd, prosedur "make-inetd-constructor" telah ditambah.
  • Untuk mencipta perkhidmatan yang diaktifkan semasa aktiviti rangkaian (dalam gaya pengaktifan soket systemd), prosedur "make-systemd-constructor" telah ditambah.
  • Prosedur tambahan untuk memulakan perkhidmatan di latar belakang - "mulakan di latar belakang".
  • Menambahkan parameter ":supplementary-groups", "#:create-session" dan "#:resource-limits" pada rutin "make-forkexec-constructor".
  • Mendayakan operasi tanpa menyekat sementara menunggu fail PID.
  • Untuk perkhidmatan tanpa parameter "#:log-file", output kepada syslog disediakan dan untuk perkhidmatan dengan parameter #:log-file, log ditulis pada fail berasingan yang menunjukkan masa rakaman. Log daripada proses gembala yang tidak mempunyai hak istimewa disimpan dalam direktori $XDG_DATA_DIR.
  • Sokongan untuk membina dengan Guile 2.0 telah dihentikan. Masalah semasa menggunakan Guile versi 3.0.5-3.0.7 telah diselesaikan.
  • Perpustakaan Fibers 1.1.0 atau lebih baru kini diperlukan untuk berfungsi.

Sumber: opennet.ru

Tambah komen