Preciso especificar uma ordem de inicialização para iniciar os processos. Eu tenho 389 Directory Server e Samba em execução no Fedora 18. Como posso inicializar os serviços de rede, depois o 389 DS e o Samba? Existe uma GUI para gerenciar isso no Fedora?
Eu habilitei o Samba para começar systemctl enable smb.service
. Também habilitei o 389 DS com systemctl enable dirsrv.target
.
Respostas:
Use
systemctl edit smb.service
para atualizar as dependências.After=dirsrv.target
- Garantirá que o smb.service seja iniciado após o dirsrv.target.Para maior robustez (que valerá a pena se você estiver mexendo com essas coisas), também poderá incluir alguns dos seguintes itens:
Requires=dirsrv.target
- Ative dirsrv.target quando o smb.service estiver ativado. Causará uma falha no smb.service se o dirsrv.target falhar.Wants=dirsrv.target
- Ative dirsrv.target quando o smb.service estiver ativado. Não causará falha no smb.service se o dirsrv.target falhar.BindsTo=dirsrv.target
- Se dirsrv.target estiver desativado, desative smb.service.Fonte: http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
fornece uma GUI para systemd. Oferece uma boa visão do estado do systemd, mas você ainda precisará usar um editor de texto para modificar os arquivos da unidade.fonte
/usr/lib/systemd
versões dos arquivos da unidade, a menos que você seja um mantenedor da distribuição ou goste de que os arquivos sejam substituídos a cada atualização de pacote. Copie o arquivo da unidade/etc/systemd
e edite-o ou use um arquivo suspenso (consulte systemd.unit (5) para obter detalhes). Ainda mais fácil, basta usar osystemctl edit smb.service
que o arquivo drop-in funciona automaticamente!Faça duas coisas:
Edite o
/lib/systemd/system/smb.service
arquivo da unidade, para especificar a dependência. A[unit]
seção contém umaAfter=
linha que especifica quais serviços / destinos devem ser alcançados antes deste.Altere para:
Relate essa dependência de volta ao Fedora como um bug , para que possa ser incorporada em versões futuras.
fonte
unit
os arquivos, você deve normalmente executadosystemctl daemon-reload
talvez você precise alterar ou incluir uma linha com a
Requires
diretiva na[Unit]
seção do/usr/lib/systemd/system/smb.service
arquivo.e
fonte
Existem duas alternativas para modificar o arquivo de serviço
/usr/lib/systemd/system
(consulte o Exemplo 2. Substituindo as configurações do fornecedor ):Copie o arquivo
/etc/systemd/system
e faça as modificações na cópia. Este arquivo substituirá completamente o arquivo/usr/lib
.Criar o arquivo
/etc/systemd/system/smb.service.d/local.conf
. O conteúdo do arquivo deve ser algo como o exemplo abaixo. Isso substitui seletivamente as opções "Requer" e "Depois" no arquivo de serviço fornecido pelo fornecedor.Cada um deles (incluindo a modificação do arquivo
/usr/lib
) oferece vantagens e desvantagens. A melhor escolha pode depender do serviço e da natureza das modificações.Embora possa funcionar, não é suficiente adicionar apenas a opção "Depois" (consulte Opções da seção [Unidade] ). "Depois" controla a ordem, mas não as dependências. Se
dirsrv.target
não for iniciado de outra maneira, a especificação de um pedido não o iniciará. O uso da opção "Requer" ou "Quer" forçará odirsrv.target
início.NB: Não sei se essa abordagem estava disponível quando essa pergunta foi feita originalmente.
fonte