A fost publicat managerul de servicii GNU Shepherd 0.9.2 (fost dmd), care este dezvoltat de către dezvoltatorii distribuției GNU Guix System ca o alternativă la sistemul de inițializare SysV-init, care suportă dependențele. Demonul de gestionare și utilitarele Shepherd sunt scrise în limbajul Guile (una dintre implementările limbajului Scheme), care este folosit și pentru definirea setărilor și parametrilor de pornire a serviciilor. Shepherd este deja utilizat în distribuția GuixSD GNU/Linux și este destinat de asemenea utilizării în GNU/Hurd, dar poate funcționa în orice sistem de operare compatibil POSIX pentru care este disponibil limbajul Guile.
Shepherd îndeplinește sarcinile de pornire și oprire a serviciilor, având în vedere interdependențele dintre serviciile respective, determinând și pornind dinamic serviciile de care depinde serviciul selectat. Shepherd suportă, de asemenea, definirea conflictelor dintre servicii și împiedică execuția lor simultană. Proiectul poate fi utilizat atât ca principal sistem de inițializare (init cu PID 1), cât și în mod izolat pentru gestionarea proceselor de fundal ale utilizatorilor individuali (de exemplu, pentru a rula tor, privoxy, mcron etc.) cu executarea drepturile utilizatorilor respectivi.
Printre modificări:
- Descriptorii de fișiere utilizați în Shepherd sunt acum marcați cu flagul O_CLOEXEC (close-on-exec) și nu sunt închisi imediat la execuția comenzii „exec-command”, ceea ce permite transmiterea descriptorilor către servicii care nu sunt porniți direct, ci prin intermediul „exec-command”.
- Conexiunile client sunt acum gestionate în mod non-blocant, ceea ce permite evitarea blocării lui shepherd la trimiterea unei comenzi incomplete.
- S-a asigurat crearea unui director pentru fișierele de jurnal, definite în setarea „log-file”, în cazul în care acesta nu există.
Sursa: opennet.ro
