I file di unità di sistema devono essere ricaricati quando modificati?


138

Diciamo che scrivo un mine.servicefile. Quindi uso systemctl enable mine.service.

Se in seguito decido di modificare mine.service, devo dire systemdche è mine.servicestato modificato? In tal caso, come posso farlo?

Risposte:


169

Dopo aver apportato modifiche al file dell'unità, è necessario eseguire systemctl daemon-reload, come indicato qui .

daemon-ricaricare
Ricarica la configurazione del gestore di sistema. Ciò eseguirà nuovamente tutti i generatori (consultare systemd.generator (7) ), ricaricherà tutti i file di unità e ricreare l'intero albero delle dipendenze. Mentre il demone viene ricaricato, tutti i socket che il sistema ascolta per conto della configurazione dell'utente rimarranno accessibili.

È quindi possibile riavviare (o ricaricare) il servizio come desiderato

systemctl restart your-service-name

(daemon-reload non ricaricherà / riavvierà i servizi stessi, rende solo systemd a conoscenza della nuova configurazione)


2
Ho scoperto che dovevo eseguire anche a systemctl restartper riavviare effettivamente il servizio stesso ...
hwjp,

3
Nel caso, daemon-reloadnon è universale, devono correre systemctl --user daemon-reloadper i servizi utente.
Olegs Jeremejevs,

Come nota anche "elimina la configurazione precedente creata dai generatori" prima di eseguirli
nuovamente

8

Come aggiunta alla risposta sopra: nel caso in cui sia stato modificato qualcosa nella [Install]direttiva, potrebbe essere necessario eseguire sudo systemctl reenable YOURUNITFILEper ricreare i collegamenti simbolici nelle directory .target.


Questo ha fatto il trucco per me! Non ho capito perché systemctl non stava ricaricando il file di servizio.
antonagestam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.