A fost prezentat managerul de sistem GNU Shepherd 1.0.0 (fost dmd), care combină funcționalitățile sistemului de inițializare și instrumentele pentru gestionarea serviciilor de sistem. Se remarcă faptul că atribuirea numărului 1.0, după 21 de ani de dezvoltare, marchează recunoașterea pregătirii proiectului și conformitatea acestuia cu cerințele de funcționalitate ale sistemelor moderne de inițializare și managerilor de servicii.
Proiectul este dezvoltat de dezvoltatorii distribuției GNU Guix System ca alternativă la sistemul de inițializare SysV-init, care suportă dependențele. Demonul de control și utilitarele Shepherd sunt scrise în limbajul Guile (una dintre implementările limbajului Scheme), care este de asemenea folosit pentru a defini configurațiile și parametrii de pornire a serviciilor. Shepherd este deja utilizat în distribuția GNU Guix System și este, de asemenea, destinat 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.
Noile caracteristici din GNU Shepherd 1.0.0:
- A fost adăugată suport pentru servicii care execută periodic comenzi sau cod în limbajul Scheme conform unui program specificat.
- În comanda „herd status SERVICE” a fost implementată afișarea informațiilor de nivel înalt despre servicii, cum ar fi PID, comanda și adresele la care sunt primite solicitările de rețea, precum și rezumate ale mesajelor recente adăugate în jurnal. În plus, această comandă arată acum acțiunile personalizate aplicabile serviciului și informează despre existența unui serviciu de înlocuire, care va fi aplicat după repornirea serviciului curent.
- Comanda „herd status root” nu mai este sinonimă cu „herd status” și afișează informații despre procesul de bază shepherd.
- Pentru platforma Linux, a fost oferită posibilitatea de a reporni utilizând mecanismul kexec („reboot —kexec”) pentru a schimba kernelul Linux fără a efectua o repornire fizică.
- A fost adăugat serviciul log-rotation, responsabil pentru rotația periodică a logurilor și eliminarea logurilor învechite.
- A fost adăugat serviciul system-log, care poate fi folosit ca o alternativă la tradiționalul sistem syslogd.
- A fost adăugat serviciul timer pentru a rula comenzi la un moment specificat, similar cu utilitarul „at”. De exemplu, „herd schedule timer at 07:00 — mpg123 alarm.mp3”.
- A fost adăugat serviciul transient pentru a rula comenzi în fundal, similar cu utilitarul systemd-run. De exemplu, „herd spawn transient -d $PWD — make -j4.”
Sursa: opennet.ro
