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

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

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

Βασικές καινοτομίες:

  • Το Make-kill-destructor υλοποιεί τη θανάτωση μιας ομάδας διεργασιών.
  • Προστέθηκε η παράμετρος "default-pid-file-timeout", η οποία καθορίζει το χρόνο αναμονής για τη δημιουργία ενός αρχείου PID.
  • Εάν το αρχείο PID δεν εμφανιστεί εντός του χρονικού ορίου λήξης, ολόκληρη η ομάδα διεργασιών τερματίζεται (αποφασίζει πρόβλημα αφήνοντας τις διαδικασίες εργασίας χωρίς αρχείο PID).
  • Προστέθηκε η παράμετρος "#:file-creation-mask" στο "make-forkeexec-constructor", υλοποιήθηκε η δημιουργία αρχείου καταγραφής και σταμάτησε να υποστηρίζει την παλιά σύμβαση κλήσης.
  • Επίλυση προβλημάτων με τη μεταγλώττιση σε συστήματα χωρίς prctl, όπως το GNU/Hurd.
  • Διορθώθηκε ένα πρόβλημα που προκαλούσε την αποστολή του SIGALRM κάθε δευτερόλεπτο.

Πηγή: opennet.ru

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