Byl představen systémový správce GNU Shepherd 1.0.0 (dříve dmd), který kombinuje funkce iniciačního systému a nástrojů pro správu systémových služeb. Je zdůrazněno, že přidělení čísla 1.0 po 21 letech vývoje znamená uznání připravenosti projektu a jeho souladu s požadavky na funkčnost moderních iniciačních systémů a správce služeb.
Projekt se vyvíjí vývojáři distribuce GNU Guix System jako alternativa ke systému init SysV, který podporuje závislosti. Řídící démon a nástroje Shepherd jsou napsány v jazyce Guile (jedna z implementací jazyka Scheme), který se také používá k definování nastavení a parametrů spouštění služeb. Shepherd je již používán v distribuci GNU Guix System a je také cílen na využití v GNU/Hurd, ale může fungovat na jakémkoli systému kompatibilním s POSIX, pro který je k dispozici jazyk Guile.
Shepherd provádí úlohy spouštění a zastavování služeb, přičemž zohledňuje vzájemné vztahy mezi službami, dynamicky určuje a spouští služby, od kterých závisí vybraná služba. Shepherd také podporuje definici konfliktů mezi službami a brání jejich současnému provádění. Projekt může být použit jak jako hlavní systém inicializace (init s PID 1), tak v odděleném režimu pro správu procesů na pozadí jednotlivých uživatelů (například pro spuštění tor, privoxy, mcron atd.) s prováděním s právy těchto uživatelů.
Hlavní novinky v GNU Shepherd 1.0.0:
- Byla přidána podpora pro služby, které periodicky spouštějí příkazy nebo kód v jazyce Scheme podle zadaného harmonogramu.
- V příkazu „herd status SERVICE“ byla implementována vysoká úroveň informací o službách, jako je PID, příkaz a adresy, na kterých jsou přijímány síťové požadavky, stejně jako souhrny nedávno přidaných zpráv do logu. Kromě toho tento příkaz nyní zobrazuje aplikovatelné uživatelské akce k službě a informuje o dostupnosti náhradní služby, která bude použita po restartování aktuální služby.
- Příkaz „herd status root“ již není synonymem pro „herd status“ a zobrazuje informace o kořenovém procesu shepherd.
- Pro platformu Linux je k dispozici možnost restartu pomocí mechanismu kexec („reboot —kexec“) pro výměnu jádra Linuxu bez fyzického restartu.
- Byl přidán servis log-rotation, který odpovídá za periodickou rotaci logů a odstranění zastaralých logů.
- Byl přidán servis system-log, který lze použít jako náhradu za tradiční systém syslogd.
- Byl přidán servis timer pro spouštění příkazů v určeném čase, obdobně jako nástroj „at“. Například „herd schedule timer at 07:00 — mpg123 alarm.mp3“.
- Byl přidán servis transient pro spouštění příkazů na pozadí, obdobně jako nástroj systemd-run. Například „herd spawn transient -d $PWD — make -j4“.
Zdroj: opennet.ru
