Ένας νέος διαχειριστής συστήματος, ο rcd, αναπτύσσεται για το FreeBSD.

Ο Baptiste Daroussin, μέλος της ομάδας FreeBSD Core και συγγραφέας του διαχειριστή πακέτων pkg, αναπτύσσει έναν νέο διαχειριστή συστήματος για το FreeBSD, τον rcd. Ο διαχειριστής συστήματος rcd καλείται από τη διεργασία init αντί για /etc/rc, διαβάζει αρχεία ρύθμισης παραμέτρων υπηρεσιών (/etc/rcd.d/*.ucl), δημιουργεί ένα δέντρο εξαρτήσεων και ξεκινά υπηρεσίες παράλληλα όποτε είναι δυνατόν. Στη συνέχεια, παρακολουθεί τις υπηρεσίες και τις επανεκκινεί εάν είναι απαραίτητο.

Ο έλεγχος της διεργασίας παρασκηνίου και των λειτουργιών με υπηρεσίες μπορεί να πραγματοποιηθεί με την άμεση μετάδοση εντολών σε μια υποδοχή UNIX ή χρησιμοποιώντας το βοηθητικό πρόγραμμα γραμμής εντολών rctl. Τα αρχεία μονάδων με παραμέτρους υπηρεσίας μορφοποιούνται σε UCL, η οποία μοιάζει με τη μορφή του nginx και συνδέουν αρχεία διαμόρφωσης με στοιχεία δανεισμένα από το JSON για την απλοποίηση της αυτοματοποιημένης επεξεργασίας. Είναι δυνατή η δημιουργία προτύπων τυπικών αρχείων μονάδων και η εγγραφή ενσωματωμένων χειριστών σε Lua. Ένα παράδειγμα αρχείου μονάδας για την εκκίνηση του nginx: name = "nginx"; description = "Nginx HTTP Server"; type = "simple"; command = "/usr/local/sbin/nginx"; command_args = "-g 'daemon off;'"; provides = ["nginx", "http"]; requires = ["ΔΙΚΤΥΟ", "sshd"]; restart { policy = "always"; max_retries = 10; delay = 2000; backoff = "linear"; } process { user = "www"; group = "www"; cpuset = "0-3"; } rctl { memoryuse = { action = "deny"; amount = "2g"; }; pcpu = { action = "throttle"; amount = "80"; }; }

Αντί να χρησιμοποιούνται αρχεία PID, η παρακολούθηση της δραστηριότητας των διεργασιών που εκτελούνται πραγματοποιείται χρησιμοποιώντας περιγραφείς που επιστρέφονται από την κλήση συστήματος pdfork(). Υπάρχει υποστήριξη για ενεργοποίηση υπηρεσιών μόνο όταν γίνεται πρόσβαση σε μια υποδοχή δικτύου και η δυνατότητα προστασίας σημαντικών υπηρεσιών από αναγκαστικό τερματισμό σε περίπτωση συνθηκών χαμηλής μνήμης. Η έκδοση διεργασίας rcd στο παρασκήνιο μπορεί να ενημερωθεί άμεσα χωρίς να χάσει κατάσταση.

Η rctl χρησιμοποιείται για τον περιορισμό των πόρων που είναι διαθέσιμοι σε μια υπηρεσία και οι υπηρεσίες μπορούν να εκτελούνται σε κλειστά περιβάλλοντα για πλήρη απομόνωση. Η πρόσβαση στην υποδοχή ελέγχου UNIX μπορεί να ρυθμιστεί για μεμονωμένες υπηρεσίες. Υποστηρίζεται η λειτουργία αναστολής λειτουργίας.

Ο διαχειριστής συστήματος είναι πλήρως συμβατός με τα υπάρχοντα συστήματα διαδοχικής εκκίνησης της υπηρεσίας rc.d και μπορεί να χρησιμοποιηθεί χωρίς να τροποποιηθούν τα υπάρχοντα σενάρια και τα αρχεία διαμόρφωσης rc.d. Απλώς εγκαταστήστε το rcd σε ένα σύστημα που εκτελείται και μετά από μια επανεκκίνηση, όλα θα συνεχίσουν να λειτουργούν όπως πριν, με εξαίρεση τους μειωμένους χρόνους εκκίνησης λόγω της παράλληλης εκκίνησης της υπηρεσίας. Αυτή η συμβατότητα θα απλοποιήσει τη μετεγκατάσταση των συστημάτων στο rcd και θα επιτρέψει τη σταδιακή μετατροπή των υπαρχόντων σεναρίων rc.d σε μορφή αρχείου μονάδας.

Για συμβατότητα με το rc.d, υποστηρίζεται ένας ειδικός τύπος μονάδας "παλαιού τύπου". Το Rcd σαρώνει τα περιεχόμενα των /etc/rc.d/ και /usr/local/etc/rc.d/, αναλύει τις κεφαλίδες PROVIDE/REQUIRE/BEFORE/KEYWORD σε σενάρια, διαβάζει τις ρυθμίσεις του rc.conf και καθορίζει την κατάσταση εκτέλεσης του σεναρίου και, στη συνέχεια, επεξεργάζεται κάθε σενάριο ως μια εικονική μονάδα παλαιού τύπου. Όταν χρησιμοποιείτε την εντολή rcctl για τη διαχείριση τέτοιων εικονικών μονάδων, οι λειτουργίες μεταφράζονται στην παλαιότερη μορφή. Για παράδειγμα, η εκτέλεση της εντολής "rcctl reload sshd" θα εκτελέσει την εντολή "/etc/rc.d/sshd reload".

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster