Η έκδοση 0.7.0.0 του διαχειριστή υπηρεσιών s6-rc έχει δημοσιευτεί. Έχει σχεδιαστεί για να διαχειρίζεται την εκκίνηση σεναρίων αρχικοποίησης και υπηρεσιών. Υποστηρίζει την παρακολούθηση δέντρου εξαρτήσεων και την αυτόματη εκκίνηση ή τερματισμό υπηρεσιών για την επίτευξη μιας καθορισμένης κατάστασης. Το κιτ εργαλείων s6-rc μπορεί να χρησιμοποιηθεί τόσο σε συστήματα αρχικοποίησης όσο και για την οργάνωση της εκκίνησης αυθαίρετων υπηρεσιών με βάση συμβάντα που αντικατοπτρίζουν αλλαγές στην κατάσταση του συστήματος. Το σύστημα υποστηρίζει σενάρια αρχικοποίησης συμβατά με το sysv-init και μπορεί να εισάγει πληροφορίες εξαρτήσεων από το sysv-rc ή το OpenRC. Ο κώδικας είναι γραμμένος σε C και διανέμεται με την άδεια ISC.
Ο διαχειριστής υπηρεσιών s6-rc περιλαμβάνει ένα σύνολο βοηθητικών προγραμμάτων για την εκκίνηση και τον τερματισμό διεργασιών μεγάλης διάρκειας (daemons) ή σεναρίων αρχικοποίησης που τερματίζονται αμέσως. Κατά τη λειτουργία, εξασφαλίζεται η παράλληλη εκκίνηση μη τεμνόμενων υπηρεσιών και μια επαναλαμβανόμενη ακολουθία εκτέλεσης σεναρίου είναι εγγυημένη για διαφορετικές εκκινήσεις. Όλες οι αλλαγές κατάστασης υποβάλλονται σε επεξεργασία λαμβάνοντας υπόψη τις εξαρτήσεις, για παράδειγμα, όταν ξεκινά μια υπηρεσία, οι εξαρτήσεις που είναι απαραίτητες για τη λειτουργία της θα ξεκινήσουν αυτόματα και όταν διακοπεί, θα διακοπούν και οι εξαρτώμενες υπηρεσίες.
Σε αντίθεση με άλλους διαχειριστές υπηρεσιών, το s6-rc υποστηρίζει την προληπτική (εκτός σύνδεσης) κατασκευή ενός γραφήματος εξάρτησης για ένα υπάρχον σύνολο υπηρεσιών, το οποίο επιτρέπει την ξεχωριστή εκτέλεση ανάλυσης εξάρτησης που απαιτεί πολλούς πόρους, αντί κατά την εκκίνηση ή τις αλλαγές κατάστασης. Ταυτόχρονα, το σύστημα δεν είναι μονολιθικό και χωρίζεται σε μια σειρά από ξεχωριστές και αντικαταστάσιμες ενότητες, καθεμία από τις οποίες, σύμφωνα με τη φιλοσοφία του Unix, επιλύει μόνο μια συγκεκριμένη εργασία. Το έργο s6-rc ακολουθεί τη φιλοσοφία του μινιμαλισμού (δεν περιέχει τίποτα περιττό) και καταναλώνει ελάχιστους πόρους.
Αντί για runlevels, το s6-rc χρησιμοποιεί την έννοια των bundles, επιτρέποντας την ομαδοποίηση των υπηρεσιών σύμφωνα με αυθαίρετα κριτήρια και εργασίες. Για τη βελτίωση της αποδοτικότητας, χρησιμοποιείται μια μεταγλωττισμένη βάση δεδομένων εξαρτήσεων, η οποία δημιουργείται από το βοηθητικό πρόγραμμα s6-rc-compile με βάση τα περιεχόμενα των καταλόγων που περιέχουν αρχεία έναρξης/διακοπής υπηρεσιών. Τα βοηθητικά προγράμματα s6-rc-db και s6-rc-update παρέχονται για την ανάλυση και τον χειρισμό της βάσης δεδομένων. Η αλυσίδα εργαλείων s6 χρησιμοποιείται στις διανομές Obarun, Adelie και Artix και μπορεί επίσης να χρησιμοποιηθεί προαιρετικά σε Gentoo, Void και Alpine.
Το έργο αναπτύσσει επίσης συνοδευτικά πακέτα που συμπληρώνουν το s6-rc:
- Το s6 είναι ένα βοηθητικό πρόγραμμα για την παρακολούθηση και τη διαχείριση διεργασιών (παρόμοιο με τα daemontools και το runit). Υποστηρίζει λειτουργίες όπως η επανεκκίνηση διεργασιών μετά τον μη φυσιολογικό τερματισμό τους, η εκκίνηση ενός χειριστή (ενεργοποίηση υπηρεσίας) κατά την πρόσβαση σε μια θύρα δικτύου, η καταγραφή συμβάντων (αντικατάσταση του syslogd) και η ελεγχόμενη χορήγηση πρόσθετων δικαιωμάτων (παρόμοια με το sudo).
- s6-linux-init — μια υλοποίηση της διεργασίας init για λειτουργικά συστήματα που βασίζονται σε πυρήνα Linux, που χρησιμοποιείται για τη δημιουργία συστημάτων init που χρησιμοποιούν τα πακέτα s6 και s6-rc για τη διαχείριση υπηρεσιών και σεναρίων.
- Το s6-networking είναι ένα σύνολο βοηθητικών προγραμμάτων για τη δημιουργία υπηρεσιών δικτύου, παρόμοιο με το ucspi.
- Το s6-frontend είναι ένα περιτύλιγμα για την αναδημιουργία daemontools και λειτουργιών runit πάνω από το s6.
- Το s6-portable-utils είναι ένα σύνολο τυπικών βοηθητικών προγραμμάτων Unix όπως cut, chmod, ls, sort και grep, βελτιστοποιημένα για χρήση ελάχιστων πόρων και διανέμονται με την άδεια ISC.
- s6-linux-utils - ένα σύνολο βοηθητικών προγραμμάτων που συνδέονται με Linuxόπως chroot, freeramdisk, logwatch, mount και swapon.
- Το mdevd είναι ένας διαχειριστής συμβάντων (παρόμοιος με το udevd) σχεδιασμένος για να χειρίζεται την άμεση σύνδεση συσκευών. Το mdevd είναι συμβατό με τις ρυθμίσεις του mdev του Busybox.
- Το bcnm είναι ένας διαμορφωτής δικτύου με δυνατότητες για τη διαμόρφωση Wi-Fi στην πλευρά του πελάτη.
- Η execline είναι μια γλώσσα σεναρίων.
- Το skalibs είναι μια βιβλιοθήκη για τη δημιουργία ασφαλών εφαρμογών συστήματος στη γλώσσα C.
- Το s6-dns είναι ένα σύνολο βιβλιοθηκών πελατών και βοηθητικών προγραμμάτων που αντικαθιστούν τα τυπικά βοηθητικά προγράμματα DNS από το BIND και το djbdns.
- dnsfunnel - ανακατευθύνει τα τοπικά αιτήματα DNS σε ένα εξωτερικό διακομιστή (Προωθητής DNS).
- Το shibari είναι ένας απλός διακομιστής DNS.
- Το tipidee είναι ένας διακομιστής HTTP με υποστήριξη HTTP/1.1.
Στη νέα έκδοση του s6-rc και των σχετικών βοηθητικών προγραμμάτων:
- Η εντολή "s6-rc reload" έχει υλοποιηθεί για την επανεκκίνηση υπηρεσιών που εκτελούνται εδώ και καιρό.
- Προστέθηκε ένα αρχείο ελέγχου σήματος επαναφόρτωσης που ορίζει το σήμα που αποστέλλεται στη διεργασία για επανεκκίνηση (η προεπιλογή είναι SIGHUP).
- Το βοηθητικό πρόγραμμα s6-rc-bundle έχει αφαιρεθεί - η αλλαγή πακέτων χωρίς επαναμεταγλώττιση δεν υποστηρίζεται πλέον.
- Έχει προταθεί μια νέα μορφή για την εσωτερική βάση δεδομένων (η ενημέρωση απαιτεί εκ νέου μεταγλώττιση και εκτέλεση του βοηθητικού προγράμματος s6-rc-format-upgrade.)
- Έχει διασφαλιστεί ο σωστός χειρισμός της κατάστασης επανεκκίνησης του βοηθητικού προγράμματος s6-rc-init για την αρχικοποίηση υπηρεσίας και έχει βελτιωθεί ο χειρισμός των βλαβών του συστήματος.
- Το βοηθητικό πρόγραμμα s6-rc-set-change έχει ενημερωθεί με τις ακόλουθες επιλογές: -I/-i για εμφάνιση προειδοποίησης ή σφάλματος όταν εντοπιστεί μια εξάρτηση σε διένεξη· -P/-p για απενεργοποίηση/ενεργοποίηση της αυτόματης επίλυσης διενέξεων εξαρτήσεων όταν αλλάζουν οι καταστάσεις της υπηρεσίας.
- Αφαιρέθηκε η παρωχημένη επιλογή "-f".
- Το βοηθητικό πρόγραμμα s6 διαθέτει πλέον την εντολή s6-svscanboot για την ανακατεύθυνση των αρχείων καταγραφής επόπτη s6-svscan στο s6-log όταν δεν εκτελείται στο PID 1.
- Υλοποιήθηκε η επιλογή "s6-svc -l" για την αποστολή σήματος για επανεκκίνηση.
- Το περιβάλλον χρήστη του s6-frontend υποστηρίζει πλέον τις ακόλουθες επιλογές και εντολές: "s6 --user" (για εργασία με υπηρεσίες χρήστη), "s6 live reset", "s6 apply", "s6 enable|disable|start|stop|kill|apply", "s6 live stop --clean".
- Ο διακομιστής HTTP tipidee υποστηρίζει πλέον FastCGI και προσθέτει την επιλογή cgi_pass_authorization.
Πηγή: opennet.ru
