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?

425nesp
fonte

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)

GregL
fonte
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.

HomelessGamer
fonte
Isso fez o truque para mim! Não entendi porque o systemctl não estava recarregando o arquivo de serviço.
antonagestam 21/09