Os arquivos da unidade systemd precisam ser recarregados quando modificados?


138

Digamos que eu escreva um mine.servicearquivo. Então eu uso systemctl enable mine.service.

Se mais tarde eu decidir editar mine.service, preciso dizer systemdque isso mine.servicefoi alterado? Se sim, como faço isso?

Respostas:


169

Depois de fazer alterações no seu arquivo de unidade, você deve executar systemctl daemon-reload, conforme descrito aqui .

daemon-reload
Recarrega a configuração do gerenciador do systemd. Isso executará novamente todos os geradores (consulte systemd.generator (7) ), recarregará todos os arquivos da unidade e recriará toda a árvore de dependência. Enquanto o daemon estiver sendo recarregado, todos os sockets systemd que escutam em nome da configuração do usuário permanecerão acessíveis.

Você pode reiniciar (ou recarregar) seu serviço conforme desejar com

systemctl restart your-service-name

(o daemon-reload não recarregará / reiniciará os serviços, apenas informa o systemd da nova configuração)


2
Eu descobri que eu também precisava executar um systemctl restartpara realmente reiniciar o serviço em si ...
hwjp

3
Apenas no caso, daemon-reloadnão é universal, tem que concorrer systemctl --user daemon-reloada serviços do usuário.
Olegs Jeremejevs

Como nota, ele também "exclui a configuração anterior criada pelos geradores" antes de executá-los novamente: freedesktop.org/software/systemd/man/systemd.generator.html
rogerdpack

8

Como complemento à resposta acima: Caso você tenha alterado algo na [Install]diretiva, pode ser necessário executar sudo systemctl reenable YOURUNITFILEpara recriar os links simbólicos nos diretórios .target.


Isso fez o truque para mim! Não entendi porque o systemctl não estava recarregando o arquivo de serviço.
antonagestam 21/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.