Rilascio del sistema init GNU Shepherd 0.9.2

È stato pubblicato il gestore del servizio GNU Shepherd 0.9.2 (ex dmd), sviluppato dagli sviluppatori della distribuzione GNU Guix System come alternativa al sistema di inizializzazione SysV-init che supporta le dipendenze. Il demone di controllo Shepherd e le utilità sono scritti nel linguaggio Guile (una delle implementazioni del linguaggio Scheme), che viene utilizzato anche per definire impostazioni e parametri per l'avvio dei servizi. Shepherd è già utilizzato nella distribuzione GuixSD GNU/Linux ed è pensato anche per l'uso in GNU/Hurd, ma può essere eseguito su qualsiasi sistema operativo compatibile con POSIX per il quale è disponibile il linguaggio Guile.

Shepherd svolge il lavoro di avvio e arresto dei servizi tenendo conto delle relazioni tra i servizi, identificando e avviando dinamicamente i servizi da cui dipende il servizio selezionato. Shepherd supporta inoltre il rilevamento dei conflitti tra i servizi e la prevenzione dell'esecuzione simultanea. Il progetto può essere utilizzato sia come sistema di inizializzazione principale (init con PID 1), sia in forma separata per gestire i processi in background dei singoli utenti (ad esempio, per eseguire tor, privoxy, mcron, ecc.) con esecuzione con diritti di questi utenti.

Tra le modifiche:

  • I descrittori di file utilizzati in Shepherd sono ora contrassegnati con il flag O_CLOEXEC (close-on-exec) anziché essere chiusi immediatamente quando viene eseguito un comando exec, consentendo il passaggio degli handle ai servizi avviati indirettamente da un comando exec.
  • Le connessioni client vengono ora elaborate in modo non bloccante, il che impedisce a Shepherd di bloccarsi quando invia un comando incompleto.
  • Garantisce che venga creata una directory per i file di registro definiti nell'impostazione "log-file" se non esiste.

Fonte: opennet.ru

Aggiungi un commento