Utgivelse av GNU Shepherd 0.9 init-systemet

To år etter dannelsen av den siste betydelige utgivelsen, ble tjenestelederen GNU Shepherd 0.9 (tidligere dmd) publisert, som utvikles av utviklerne av GNU Guix System-distribusjonen som et alternativ til SysV-init initialiseringssystemet som støtter avhengigheter . Shepherd-kontrolldaemonen og verktøyene er skrevet på Guile-språket (en av implementeringene av Scheme-språket), som også brukes til å definere innstillinger og parametere for lansering av tjenester. Shepherd brukes allerede i GuixSD GNU/Linux-distribusjonen og er også rettet mot bruk i GNU/Hurd, men kan kjøres på et hvilket som helst POSIX-kompatibelt OS som Guile-språket er tilgjengelig for.

Shepherd gjør arbeidet med å starte og stoppe tjenester ved å ta hensyn til relasjonene mellom tjenester, dynamisk identifisere og starte tjenestene som den valgte tjenesten er avhengig av. Shepherd støtter også å oppdage konflikter mellom tjenester og hindre dem i å kjøre samtidig. Prosjektet kan brukes både som hovedinitialiseringssystem (init med PID 1), og i en egen form for å administrere bakgrunnsprosesser til individuelle brukere (for eksempel for å kjøre tor, privoxy, mcron, etc.) med utførelse med rettighetene av disse brukerne.

Hovedinnovasjoner:

  • Konseptet med midlertidige tjenester (forbigående) er implementert, automatisk deaktivert etter fullføring på grunn av avslutning av prosessen eller anrop av "stopp"-metoden, som kan være nødvendig for syntetiserte tjenester som ikke kan startes på nytt etter avslutning.
  • For å lage inetd-lignende tjenester er "make-inetd-constructor"-prosedyren lagt til.
  • For å lage tjenester som aktiveres under nettverksaktivitet (i systemd-socketaktiveringsstilen), er "make-systemd-constructor"-prosedyren lagt til.
  • Lagt til prosedyre for å starte en tjeneste i bakgrunnen - "start-i-bakgrunnen".
  • Lagt til parametere ":supplementary-groups", "#:create-session" og "#:resource-limits" til "make-forkexec-constructor"-prosedyren.
  • Aktivert drift uten blokkering mens du venter på PID-filer.
  • For tjenester uten parameteren "#:log-file" leveres utdata til syslog, og for tjenester med parameteren #:log-file, skrives loggen til en egen fil som angir tidspunktet for opptak. Logger fra den uprivilegerte hyrdeprosessen lagres i katalogen $XDG_DATA_DIR.
  • Støtte for bygging med Guile 2.0 er avviklet. Problemer ved bruk av Guile versjoner 3.0.5-3.0.7 er løst.
  • Fibers-biblioteket 1.1.0 eller nyere kreves nå for å fungere.

Kilde: opennet.ru

Legg til en kommentar