GNU Shepherd, manajer layanan yang dikembangkan oleh Guix

Setelah dua tahun sejak pembentukan versi utama terakhir, rilis versi baru dari pengelola layanan GNU Shepherd 0.9 (sebelumnya dikenal sebagai dmd) diumumkan kepada publik . Pengelola layanan ini dikembangkan oleh para pengembang distribusi GNU Guix sebagai alternatif untuk inisialisasi SysV-init yang sadar akan ketergantungan sistem.

Shepherd menyediakan fungsionalitas ruang pengguna secara asinkron sebagai layanan , yang dalam Shepherd berupa fungsi generik dan tipe data objek yang diekspor agar Shepherd dapat menggunakannya dalam memperluas sistem operasi dasar dengan cara yang telah ditentukan. Tidak seperti systemd, proses pemantauan ruang pengguna berjalan sebagai pengguna tersebut.

Tentang Gembala

Inti dari model inisialisasi ruang pengguna Shepherd adalah konsep ekstensi, suatu bentuk komposisi di mana layanan dirancang untuk tumpang tindih dengan layanan lain, melengkapinya dengan perilaku yang lebih rumit atau khusus sesuai keinginan. Hal ini mengekspresikan hubungan ketergantungan berbasis instansiasi yang ditemukan di banyak sistem init modern, menjadikan sistem modular, tetapi juga memungkinkan layanan untuk berinteraksi secara bervariasi dengan layanan lain dengan cara yang sewenang-wenang.

Shepherd juga menyediakan apa yang disebut layanan virtual yang memungkinkan pengiriman dinamis melalui kelas objek layanan terkait, seperti semua objek yang membuat instance agen transfer surat (MTA) untuk sistem tersebut.

Sistem yang diatur oleh daemon Shepherd dapat mewakili ruang penggunanya sebagai grafik asiklik terarah, dengan "layanan sistem" (bertanggung jawab untuk fase boot dan startup awal) sebagai root dan semua layanan yang diinisialisasi berikutnya sebagai ekstensi dari fungsionalitas layanan sistem , baik secara langsung maupun transitif melalui layanan lain.

Karena ditulis dan dikonfigurasi dalam Guile Scheme, GNU Shepherd dirancang agar sangat mudah diprogram oleh administrator sistem, tetapi juga dapat digunakan untuk mengelola profil per pengguna dari daemon dan layanan yang tidak memiliki hak istimewa.

Layanan dan konfigurasinya disimpan secara seragam sebagai kode Scheme berorientasi objek, dan meskipun serangkaian layanan inti disediakan dengan sistem Guix dasar, layanan baru apa pun dapat dideklarasikan secara fleksibel, dan melalui sistem objek Guile, GOOPS, layanan yang ada dapat didefinisikan ulang sesuai keinginan pengguna dengan meminta Shepherd untuk secara dinamis menulis ulang layanan dengan cara tertentu pada saat instansiasi.

GNU Shepherd awalnya dirancang untuk bekerja dengan GNU Hurd dan kemudian diadopsi oleh Sistem Guix.

Fitur baru utama GNU Shepherd 0.9

Versi baru ini menyoroti implementasi konsep layanan sementara (transien), yang secara otomatis terputus setelah penghentian karena penghentian proses atau panggilan ke metode "stop", yang mungkin diperlukan untuk layanan sintetis yang tidak dapat dimulai ulang setelah penghentian.

Perubahan penting lainnya adalah bahwa untuk layanan tanpa parameter "#:log-file" , output diberikan ke syslog , dan untuk layanan dengan parameter "#:log-file", log ditulis ke file terpisah yang menunjukkan waktu log dalam proses Shepherd yang tidak memiliki hak istimewa, yang disimpan di direktori $XDG_DATA_DIR.

Selain itu, perlu dicatat bahwa prosedur "make-inetd-constructor" ditambahkan untuk membuat layanan yang mirip dengan inetd dan prosedur "make-systemd-constructor" ditambahkan untuk membuat layanan yang diaktifkan dalam aktivitas jaringan (style systemd socket pengaktifan).

Perubahan penting lainnya dalam versi baru ini meliputi:

  • Menambahkan prosedur untuk memulai layanan latar belakang:
  • Menambahkan parameter ":supplementary-groups", "#:create-session" dan "#:resource-limits" ke prosedur "make-forkexec-constructor".
  • Dijamin operasi bebas kunci sambil menunggu file PID.
  • Menghapus dukungan untuk kompilasi dengan Guile 2.0. Memperbaiki masalah saat menggunakan versi Guile 3.0.5-3.0.7.
  • Pustaka Fibres 1.1.0 atau yang lebih baru sekarang diperlukan untuk berfungsi.
  • Dokumentasi dan contoh yang ditingkatkan
  • Shepherd tidak bisa lagi dibangun dengan Guile 2.0
  • Perbaiki di bug compiler Guile 3.0.[5-7]
  • Terjemahan yang diperbarui

Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut atau ingin mendapatkan versi terbaru ini, Anda dapat melihat detail, dokumentasi, dan mengunduhnya melalui tautan berikut.


Tambahkan sebagai sumber pilihan di Google