Κυκλοφορία του συστήματος init GNU Shepherd 0.9.2

Δημοσιεύτηκε ο διαχειριστής υπηρεσιών GNU Shepherd 0.9.2 (πρώην dmd), ο οποίος αναπτύσσεται από τους προγραμματιστές της διανομής GNU Guix System ως εναλλακτική λύση στο σύστημα αρχικοποίησης SysV-init που υποστηρίζει εξαρτήσεις. Ο δαίμονας ελέγχου Shepherd και τα βοηθητικά προγράμματα είναι γραμμένα στη γλώσσα Guile (μία από τις υλοποιήσεις της γλώσσας Scheme), η οποία χρησιμοποιείται επίσης για τον καθορισμό ρυθμίσεων και παραμέτρων για την εκκίνηση υπηρεσιών. Το Shepherd χρησιμοποιείται ήδη στη διανομή GuixSD GNU/Linux και στοχεύει επίσης στη χρήση στο GNU/Hurd, αλλά μπορεί να εκτελεστεί σε οποιοδήποτε λειτουργικό σύστημα συμβατό με POSIX για το οποίο είναι διαθέσιμη η γλώσσα Guile.

Ο Shepherd κάνει το έργο της έναρξης και της διακοπής των υπηρεσιών λαμβάνοντας υπόψη τις σχέσεις μεταξύ των υπηρεσιών, εντοπίζοντας και ξεκινώντας δυναμικά τις υπηρεσίες από τις οποίες εξαρτάται η επιλεγμένη υπηρεσία. Το Shepherd υποστηρίζει επίσης τον εντοπισμό διενέξεων μεταξύ των υπηρεσιών και την αποτροπή της ταυτόχρονης εκτέλεσης τους. Το έργο μπορεί να χρησιμοποιηθεί τόσο ως κύριο σύστημα αρχικοποίησης (init με PID 1) όσο και σε ξεχωριστή μορφή για τη διαχείριση των διαδικασιών παρασκηνίου μεμονωμένων χρηστών (για παράδειγμα, για εκτέλεση tor, privoxy, mcron, κ.λπ.) με εκτέλεση με τα δικαιώματα από αυτούς τους χρήστες.

Μεταξύ των αλλαγών:

  • Οι περιγραφείς αρχείων που χρησιμοποιούνται στο Shepherd επισημαίνονται τώρα με τη σημαία O_CLOEXEC (close-on-exec) αντί να κλείνουν αμέσως όταν εκτελείται μια εντολή exec, επιτρέποντας τη μετάδοση λαβών σε υπηρεσίες που ξεκινούν έμμεσα από μια εντολή exec.
  • Οι συνδέσεις πελατών υποβάλλονται πλέον σε επεξεργασία με μη αποκλειστικό τρόπο, γεγονός που εμποδίζει το shepherd να "κολλάει" όταν στέλνει μια ημιτελή εντολή.
  • Διασφαλίζει ότι δημιουργείται ένας κατάλογος για αρχεία καταγραφής που ορίζονται στη ρύθμιση "αρχείο καταγραφής", εάν δεν υπάρχει.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο