manager di servizio (), che è sviluppato dagli sviluppatori della distribuzione GNU Guix System come dipendenza di supporto alternativa al sistema di inizializzazione SysV-init. Il demone di gestione e gli strumenti di Shepherd sono scritti in Guile (una delle implementazioni del linguaggio Scheme), che viene utilizzato anche per definire le configurazioni e i parametri di avvio dei servizi. Shepherd è già in uso nella distribuzione GuixSD GNU/Linux e punta anche a essere utilizzato in GNU/Hurd, ma può funzionare su qualsiasi sistema operativo compatibile con POSIX per cui è disponibile il linguaggio Guile.
Shepherd può essere utilizzato sia come sistema di inizializzazione principale (init con PID 1), sia in modo indipendente per gestire i processi in background di singoli utenti (ad esempio, per avviare tor, privoxy, mcron, ecc.) con i diritti di tali utenti. Shepherd si occupa di avviare e fermare i servizi, tenendo conto delle interdipendenze tra i servizi, determinando e avviando dinamicamente i servizi da cui dipende il servizio scelto. Shepherd supporta anche la definizione di conflitti tra i servizi e ne impedisce l'esecuzione simultanea.
Novità principali:
- È stato implementato un nuovo gestore degli errori dei processi, che consente, quando si lavora sotto PID 1, di generare core dump in GNU/Linux;
- Nel gestore dei servizi è stata aggiunta la possibilità di esportare le variabili d'ambiente definite nell'impostazione «default-environment-variables»;
- Nel «make-forkexec-constructor» è stata interrotta la rimozione dei file di log;
- Il riavvio al momento della pressione di ctrl-alt-del è ora vietato nella fase precedente al trattamento del file di configurazione;
- Il codice per la gestione delle eccezioni è stato adattato per .
Fonte: opennet.ru
