gerente de serviço (), que é desenvolvido pelos desenvolvedores da distribuição GNU Guix System como uma dependência de suporte alternativa ao sistema de inicialização SysV-init. O daemon controlador e as utilidades do Shepherd são escritos na linguagem Guile (uma das implementações da linguagem Scheme), que também é usada para definir configurações e parâmetros de inicialização dos serviços. O Shepherd já está sendo utilizado na distribuição GuixSD GNU/Linux e também tem como alvo o uso no GNU/Hurd, mas pode operar em qualquer sistema operacional compatível com POSIX, para o qual a linguagem Guile esteja disponível.
O Shepherd pode ser usado tanto como o sistema de inicialização principal (init c PID 1), quanto de forma isolada para gerenciar processos em segundo plano de usuários individuais (por exemplo, para iniciar tor, privoxy, mcron, etc.), executando com os privilégios desses usuários. O Shepherd realiza o trabalho de iniciar e parar serviços, levando em consideração as interdependências entre os serviços, determinando e iniciando dinamicamente os serviços dos quais um serviço selecionado depende. O Shepherd também suporta a definição de conflitos entre serviços e evita sua execução simultânea.
Principais novidades:
- Em make-kill-destructor, foi implementada a finalização de um grupo de processos;
- Adicionado o parâmetro 'default-pid-file-timeout', que define o tempo de espera para a criação do arquivo PID;
- Se o arquivo PID não aparecer dentro do tempo limite, a finalização de todo o grupo de processos é garantida (resolve de deixar processos de trabalho sem arquivo PID);
- Em 'make-forkexec-constructor', adicionado o parâmetro '#:file-creation-mask', foi implementada a criação de arquivos de log e o suporte ao antigo acordo de chamadas foi encerrado;
- Problemas de compilação em sistemas sem prctl, como o GNU/Hurd, foram resolvidos;
- Uma falha que causava o envio de SIGALRM a cada segundo foi corrigida.
Fonte: opennet.ru
