Apa yang dilakukan “systemctl daemon-reload”?

47

Saya memiliki layanan yang berhenti tiba-tiba. Saya mencoba untuk me-restart layanan itu tetapi gagal dan diminta untuk menjalankan "systemctl daemon-reload".

Apa yang sebenarnya dilakukannya? Apa itu "daemon reload?"

John
sumber

Jawaban:

47

man systemctl mengatakan:

   daemon-reload
       Reload systemd manager configuration. This will rerun all generators (see systemd.generator(7)), reload
       all unit files, and recreate the entire dependency tree. While the daemon is being reloaded, all sockets
       systemd listens on behalf of user configuration will stay accessible.

       This command should not be confused with the reload command.

Jadi, ini adalah reload "lunak", pada dasarnya; mengambil konfigurasi yang diubah dari sistem file dan regenerasi pohon dependensi .

Akibatnya, systemd.generatornyatakan:

Generator adalah binari kecil yang tinggal di / usr / lib / systemd / user-generator / dan direktori lain yang tercantum di atas. systemd (1) akan menjalankan binari-binari tersebut pada saat bootup dan pada konfigurasi reload time - sebelum file unit dimuat. Generator dapat secara dinamis menghasilkan file unit atau membuat tautan simbolis ke file unit untuk menambah dependensi tambahan, sehingga memperluas atau mengabaikan definisi yang ada. Tujuan utama mereka adalah untuk mengkonversi file konfigurasi yang bukan file unit asli secara dinamis menjadi file unit asli.

   Generators are loaded from a set of paths determined during compilation, listed above. System and user
   generators are loaded from directories with names ending in system-generators/ and user-generators/,
   respectively. Generators found in directories listed earlier override the ones with the same name in
   directories lower in the list. A symlink to /dev/null or an empty file can be used to mask a generator,
   thereby preventing it from running. Please note that the order of the two directories with the highest
   priority is reversed with respect to the unit load path and generators in /run overwrite those in /etc.

   After installing new generators or updating the configuration, systemctl daemon-reload may be executed. This
   will delete the previous configuration created by generators, re-run all generators, and cause systemd to
   reload units from disk. See systemctl(1) for more information.
ILMostro_7
sumber