manager di servizio (), sviluppato dagli sviluppatori della distribuzione GuixSD GNU/Linux come dipendenza di supporto alternativa al sistema di inizializzazione SysV-init. Il demone di gestione e gli strumenti Shepherd sono scritti nel linguaggio Guile (una delle implementazioni del linguaggio Scheme), che viene anche utilizzato per definire le impostazioni e i parametri di avvio dei servizi. Shepherd è già utilizzato nella distribuzione GuixSD GNU/Linux ed è previsto anche per GNU/Hurd, ma può funzionare su qualsiasi sistema operativo conforme a POSIX per il quale è 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:
- Aggiunta la modalità operativa dei servizi ,
in cui il servizio viene contrassegnato come fermo subito dopo un avvio riuscito, il che può essere necessario per eseguire lavori una tantum prima di altri servizi, ad esempio per eseguire pulizie o inizializzazioni; - Garantita la rimozione dei file con i socket dopo il termine del lavoro
shepherd; - Il comando 'herd stop' non restituisce più un errore quando viene eseguito su un servizio già fermo;
- L'utility herd ora restituisce un codice di uscita non nullo in caso di errore durante l'avvio del compito;
- Nel caso di avvio in un contenitore, gli errori legati al caricamento vengono ignorati.
Fonte: opennet.ru
