Megjelent a Shepherd 1.0

Hosszas várakozás után, több mint két évtizeddel az indulása után, a Shepherd hivatalosan is elérte az 1.0-s mérföldkövet. Ez a verzió nem csupán egy új szám a név mellett, hanem egy olyan kiadás, amely méltó vetélytársa a modern init rendszereknek és szolgáltatáskezelőknek, például a systemd-nek. Ez a lépés különösen fontos a Guix projekt számára, amely hosszú ideje támaszkodik a Shepherdre, és mára a stabilitás, valamint a felhasználói élmény terén is kiemelkedőt nyújt.

A kiadás örömére a projekt kapott egy vadonatúj logót (Luis Felipe López Acevedo tervei alapján), valamint egy friss, informatív weboldalt is. De nézzük meg közelebbről, mit is tud a Shepherd!

Mi az a Shepherd?

A Shepherd egy minimalista szolgáltatáskezelő, amely képes nyomon követni, elindítani, leállítani és újraindítani a rendszer vagy felhasználói szintű szolgáltatásokat. Bár az alapfeladat egyszerűnek tűnik, a Shepherd kiemelkedik azzal, hogy átláthatóságot és precíz irányítást kínál.

Főbb jellemzők:

  • Két parancs:

    • shepherd: a démon, amely a szolgáltatásokat kezeli,

    • herd: egy felhasználói parancs a szolgáltatások állapotának lekérdezéséhez és vezérléséhez.

  • Rugalmasság:

    • A Shepherd működhet init rendszerként (PID 1), ahogy a Guix System esetében, de felhasználói szintű szolgáltatásokat is kezelhet, például a Guix Home környezetben.

Hogyan működik? Példa a gyakorlatban

Ha például az NTP démon (Network Time Protocol) állapotára vagyunk kíváncsiak, a következő parancsot futtathatjuk rootként:

$ sudo herd status ntpd
ntpd állapota:
  Fut: 2 napja (Fő PID: 11359)
  Parancs: ntpd -n -c /…-ntpd.conf -u ntpd -g
  Naplófájl: /var/log/ntpd.log

A Shepherd nemcsak az aktuális állapotot jeleníti meg, hanem a legutóbbi naplóbejegyzéseket is láthatjuk. Egyetlen paranccsal (herd stop ntpd) leállíthatjuk a szolgáltatást, vagy akár újraindíthatjuk, ha szükséges.

Egyedi funkciók és rugalmasság

A Shepherd különlegessége, hogy konfigurációit saját implementációs nyelvén, a Guile Scheme-ben definiálhatjuk. Ez elsőre ijesztőnek tűnhet, de a rendszer lehetővé teszi az egyszerű indulást, majd lépésről lépésre haladhatunk a bonyolultabb beállítások felé.

Egy egyszerű konfiguráció így néz ki:

(register-services
  (list (service '(ntpd) …)))

(start-in-the-background '(ntpd …))

Ez a megközelítés nemcsak nagyfokú testreszabhatóságot biztosít, hanem áthidalja a felhasználói és fejlesztői szakadékot is.

Újdonságok a 1.0.0 verzióban

A Shepherd 1.0.0 számos fejlesztéssel érkezik, amelyek mind a felhasználói élményt, mind a funkcionalitást gazdagítják:

  1. Időzített szolgáltatások támogatása:
    Szolgáltatások, amelyek előre meghatározott időpontokban vagy ütemezés szerint futnak.

  2. Továbbfejlesztett állapotinformációk:
    Mostantól a herd status parancs részletes adatokat nyújt a fő PID-ről, a parancsról, a hálózati címekről stb.

  3. Új szolgáltatások:

    • Naplóforgatás: Automatikus naplótömörítés és törlés, amely versenytárs nélküli pontosságot kínál.

    • Rendszernaplózás: A Shepherd most már hagyományos syslog-szerű funkcionalitást is ellát.

    • Időzített parancsok: Hasonló az at parancshoz, például:

      herd schedule timer at 07:00 -- mpg123 alarm.mp3

Miért érdemes kipróbálni?

A Shepherd kódja mindössze 7,4 ezer sor, ami rendkívül karcsúvá és könnyen érthetővé teszi. A szálak és az aktormodell használata lehetővé teszi a szolgáltatások állapotának egyszerű kezelését, elkerülve a bonyolult eseménykezelő hurkokat. Az eredmény? Letisztult, bővíthető, és ami a legfontosabb, megbízható működés.

Tervek a jövőre nézve

A Shepherd fejlesztése nem áll meg itt. A közeljövőben további funkciók várhatók, például dinamikusan újrakonfigurálható szolgáltatások és szorosabb integráció a Linux csoportvezérlőivel (cgroups). Hosszabb távon pedig az elosztott szolgáltatáskezelés irányába szeretnének elmozdulni.

Próbáld ki te is a Shepherd 1.0-t, és fedezd fel, milyen élmény egy modern és elegáns szolgáltatáskezelő használata! További részleteket ebben a blogbejegyzésben találsz.

Osszd meg ezt a cikket
Elérhető a Fedora 42 béta
A Fedora 42 béta verzió már elérhető és tesztelhető, míg a stabil kiadást április 15-re tervezik . Az új verzió számos jelentős fejlesztést tartalmaz, amelyek célja a felhasználói élmény javítása, a telepítési folyamat egyszerűsítése, valamint a modern asztali környezetek és technikai megoldások integrálása.
GitHub Models, AI modellek futtatása Linux terminálból
Fedezd fel, hogyan futtathatsz AI modelleket Linux terminálból a GitHub Models segítségével, még egy régi ThinkPad T470p-n is.
A Linux kernel dráma közepette érkezett a Rust 1.85.0
Az 1.85 a 2024-es kiadás egy újabb javítása, amely tovább javítja memóriabiztonságot és az egyidejűségi modelleket és igyekszik egy jobb és megbízhatóbb eszközöket nyújtani teljesítménykritikus rendszerek fejlesztéséhez. A Rust elfogadtatása azonban, pont ott halad a legnehezebben, ahol a leginkább létjogosultsága van, a Linux kernel fejlesztésében.
Agent Laboratory nyílt forráskódú AI labor asszisztens
Az emberek sokszor félelemmel, vagy gyanakvással tekintenek a mesterséges intelligenciára annak rendkívül gyors előretörése miatt, de valószínűleg a legtöbben örülnek annak egyik leghasznosabb hozadékának, nevezetesen, hogy jelentősen gyorsítja a különböző kutatásokat.