manager de serviciu (), care este dezvoltată de dezvoltatorii distribuției GNU Guix System ca o dependență de suport alternativă pentru sistemul de inițializare SysV-init. Demonul de gestionare și utilitarele Shepherd sunt scrise în limbajul Guile (o implementare a limbajului Scheme), care este folosit și pentru a defini setările și parametrii de pornire ai serviciilor. Shepherd este deja utilizat în distribuția GuixSD GNU/Linux și este de asemenea destinat utilizării în GNU/Hurd, dar poate funcționa pe orice sistem de operare compatibil POSIX pentru care este disponibil limbajul Guile.
Shepherd poate fi folosit atât ca sistem de inițializare principal (init cu PID 1), cât și în mod separat pentru gestionarea proceselor de fundal ale utilizatorilor individuali (de exemplu, pentru a porni tor, privoxy, mcron etc.) cu executarea cu drepturile acestor utilizatori. Shepherd se ocupă de pornirea și oprirea serviciilor, având în vedere interdependențele dintre servicii, determinând și lansând dinamic serviciile de care depinde serviciul selectat. Shepherd suportă de asemenea definirea conflictelor între servicii și previne execuția simultană a acestora.
Noutăți principale:
- În make-kill-destructor este implementată uciderea unui grup de procese;
- A fost adăugat parametrul „default-pid-file-timeout”, care definește timpul de așteptare pentru crearea fișierului PID;
- Dacă fișierul PID nu a apărut în timpul limită, se asigură finalizarea întregului grup de procese (rezolvă lăsând procesele de lucru fără fișier PID);
- În „make-forkexec-constructor” a fost adăugat parametrul „#:file-creation-mask”, s-a implementat crearea fișierelor de jurnal și s-a oprit suportul pentru vechea convenție de apeluri;
- S-au rezolvat problemele de compilare pe sistemele fără prctl, cum ar fi GNU/Hurd;
- A fost eliminată o eroare care ducea la trimiterea SIGALRM în fiecare secundă.
Sursa: opennet.ro
