manager di servizio (), che viene 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 utilizzato anche per definire le impostazioni e i parametri di avvio dei servizi. Shepherd è già utilizzato nella distribuzione GuixSD GNU/Linux ed è previsto anche per l'uso in GNU/Hurd, ma può funzionare in qualsiasi sistema operativo compatibile con POSIX per il quale è disponibile il linguaggio Guile.
Shepherd può essere utilizzato sia come sistema di inizializzazione principale (init con PID 1), sia in forma isolata per gestire processi in background di utenti singoli (ad esempio, per avviare tor, privoxy, mcron, ecc.) con l'esecuzione con i diritti di tali utenti. Shepherd si occupa dell'avvio e dell'arresto dei servizi, considerando le interazioni tra i servizi, determinando e avviando dinamicamente i servizi da cui dipende il servizio selezionato. Shepherd supporta anche la definizione di conflitti tra servizi e previene la loro esecuzione simultanea.
Novità principali:
- Aggiunto il modo di funzionamento dei servizi ,
nel quale il servizio dopo un'esecuzione riuscita viene contrassegnato come fermato, il che potrebbe essere necessario per eseguire lavori una tantum prima di altri servizi, ad esempio per eseguire una pulizia o inizializzazione; - Garantita la rimozione dei file con i socket dopo la conclusione del lavoro
shepherd; - Il comando «herd stop» ora non restituisce un errore se eseguito su un servizio già fermato;
- L'utilità herd ora restituisce un codice di uscita diverso da zero in caso di errore durante l'avvio di un'attività;
- In caso di esecuzione in un contenitore, vengono ignorati gli errori relativi al caricamento.
Fonte: opennet.ru
