Lansarea sistemului GNU Shepherd 0.9 init

La doi ani după formarea ultimei versiuni semnificative, a fost publicat managerul de servicii GNU Shepherd 0.9 (fostul dmd), care este dezvoltat de dezvoltatorii distribuției GNU Guix System ca alternativă la sistemul de inițializare SysV-init care acceptă dependențe. . Daemonul de control Shepherd și utilitățile sunt scrise în limbajul Guile (una dintre implementările limbajului Scheme), care este, de asemenea, folosit pentru a defini setările și parametrii pentru lansarea serviciilor. Shepherd este deja folosit în distribuția GuixSD GNU/Linux și este, de asemenea, destinat utilizării în GNU/Hurd, dar poate rula pe orice sistem de operare compatibil POSIX pentru care este disponibil limbajul Guile.

Shepherd face munca de pornire și oprire a serviciilor ținând cont de relațiile dintre servicii, identificând și pornind dinamic serviciile de care depinde serviciul selectat. Shepherd acceptă, de asemenea, detectarea conflictelor între servicii și prevenirea rulării lor simultane. Proiectul poate fi folosit atât ca sistem principal de inițializare (init cu PID 1), cât și într-o formă separată pentru a gestiona procesele de fundal ale utilizatorilor individuali (de exemplu, pentru a rula tor, privoxy, mcron etc.) cu execuție cu drepturi dintre acești utilizatori.

Principalele inovații:

  • Este implementat conceptul de servicii temporare (tranzitorii), dezactivat automat după finalizare din cauza încetării procesului sau apelului metodei „stop”, care poate fi necesar pentru serviciile sintetizate care nu pot fi repornite după oprire.
  • Pentru a crea servicii asemănătoare inetd, a fost adăugată procedura „make-inetd-constructor”.
  • Pentru a crea servicii care sunt activate în timpul activității în rețea (în stilul de activare a soclului systemd), a fost adăugată procedura „make-systemd-constructor”.
  • S-a adăugat o procedură pentru pornirea unui serviciu în fundal - „start-in-the-background”.
  • S-au adăugat parametrii „:supplementary-groups”, „#:create-session” și „#:resource-limits” la procedura „make-forkexec-constructor”.
  • Funcționare activată fără blocare în așteptarea fișierelor PID.
  • Pentru serviciile fără parametrul „#:log-file”, ieșirea către syslog este furnizată, iar pentru serviciile cu parametrul #:log-file, jurnalul este scris într-un fișier separat care indică ora înregistrărilor. Jurnalele din procesul neprivilegiat Shepherd sunt stocate în directorul $XDG_DATA_DIR.
  • Suportul pentru construirea cu Guile 2.0 a fost întrerupt. Problemele la utilizarea versiunilor Guile 3.0.5-3.0.7 au fost rezolvate.
  • Biblioteca Fibres 1.1.0 sau mai recentă este acum necesară pentru a funcționa.

Sursa: opennet.ru

Adauga un comentariu