Vraag Moeten systemd unit-bestanden opnieuw worden geladen als ze worden gewijzigd?


Laten we zeggen dat ik een schrijf mine.service het dossier. Dan gebruik ik systemctl enable mine.service.

Als ik later besluit om te bewerken mine.service, moet ik het vertellen systemd dat mine.service was veranderd? Zo ja, hoe doe ik dat?


94
2018-06-23 03:17


oorsprong




antwoorden:


Nadat u uw unit-bestand hebt gewijzigd, moet u het uitvoeren systemctl daemon-reload, zoals geschetst hier.

daemon-reload
  Reload systemd manager configuratie. Hiermee worden alle generators opnieuw uitgevoerd (zie systemd.generator (7)), laad alle eenheidsbestanden opnieuw en maak de volledige afhankelijkheidsstructuur opnieuw. Terwijl de daemon opnieuw wordt geladen, blijven alle sockets die systemd worden beluisterd namens de gebruikersconfiguratie toegankelijk.

U kunt vervolgens uw service opnieuw starten (of opnieuw laden), zoals u wenst

systemctl restart your-service-name

(daemon-reload zal de services niet zelf herladen / herstarten, maakt systemd alleen op de hoogte van de nieuwe configuratie)


113
2018-06-23 11:38



Ik merkte dat ik ook een moest uitvoeren systemctl restart om de service zelf opnieuw te starten ... - hwjp
Voor het geval dat, daemon-reload is niet universeel, moet lopen systemctl --user daemon-reload voor gebruikersdiensten. - Olegs Jeremejevs


Als een aanvulling op het bovenstaande antwoord: In het geval dat u iets hebt gewijzigd in de [Install] richtlijn, moet u mogelijk uitvoeren sudo systemctl reenable YOURUNITFILE om de symlinks in de .target-directory opnieuw te maken.


1
2017-08-19 13:01



Dit heeft de truc voor mij gedaan! Snapte het niet waarom systemctl het servicebestand niet herlaadde. - antonagestam