gerente de serviço (), que está sendo desenvolvido pelos desenvolvedores da distribuição GuixSD GNU/Linux como uma dependência de suporte alternativa ao sistema de inicialização SysV-init. O daemon e utilitários do Shepherd são escritos na linguagem Guile (uma das implementações da linguagem Scheme), que também é utilizada para definir configurações e parâmetros de inicialização de serviços. O Shepherd já está sendo utilizado na distribuição GuixSD GNU/Linux e visa também ser usado no GNU/Hurd, mas pode funcionar em qualquer sistema operacional compatível com POSIX, para o qual a linguagem Guile está 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:
- Modo de operação dos serviços adicionado ,
onde o serviço é marcado como parado logo após ser iniciado com sucesso, o que pode ser necessário para executar trabalhos temporários antes de outros serviços, como para realizar limpezas ou inicializações; - Remoção de arquivos com sockets após a conclusão do trabalho garantida
shepherd; - O comando 'herd stop' agora não gera erro ao ser executado em um serviço que já está parado;
- O utilitário herd agora retorna um código de saída não nulo em caso de falha ao iniciar a tarefa;
- Em caso de execução em um contêiner, os erros relacionados ao carregamento são ignorados.
Fonte: opennet.ru
