Sistem birimi dosyaları değiştirildiği zaman yeniden yüklenmeli mi?


138

Diyelim ki bir mine.servicedosya yazdım . O zaman kullanıyorum systemctl enable mine.service.

Daha sonra düzenlemeye karar mine.serviceverirsem systemd, mine.servicebunun değiştiğini söylemek zorunda mıyım ? Eğer öyleyse, bunu nasıl yaparım?

Yanıtlar:


169

Birim dosyanızda değişiklik yaptıktan sonra systemctl daemon-reload, burada belirtildiği gibi çalıştırmalısınız .

Daemon-yeniden yüklemek
sistemd yöneticisi yapılandırması. Bu, tüm jeneratörleri tekrar çalıştırır (bkz. Systemd.generator (7) ), tüm birim dosyalarını yeniden yükler ve tüm bağımlılık ağacını yeniden oluşturur. Arka plan programı yeniden yüklenirken, kullanıcı yapılandırması adına dinlenen tüm soketler sistemi kullanıcı tarafından erişilebilir durumda kalacaktır.

Ardından servisinizi istediğiniz şekilde yeniden başlatabilir (veya yeniden yükleyebilirsiniz).

systemctl restart your-service-name

(Daemon-yeniden yükleme, hizmetleri yeniden yüklemez / yeniden başlatmaz, sistemi yeni yapılandırmanın farkında yapar)


2
Ben de bir systemctl restartservis çalıştırmak aslında gerekli yeniden başlatmak için gerekli olduğunu buldum ...
hwjp

3
Durumda, daemon-reloadevrensel değil, systemctl --user daemon-reloadkullanıcı hizmetleri için koşmak zorunda .
Olegs Jeremejevs,

Bir not olarak, ayrıca yeniden çalıştırmadan önce "üreticiler tarafından oluşturulan önceki yapılandırmayı silin": freedesktop.org/software/systemd/man/systemd.generator.html
rogerdpack

8

Yukarıdaki cevaba ek olarak: [Install]Direktifteki bir şeyi değiştirdiyseniz sudo systemctl reenable YOURUNITFILE, .target dizinlerindeki sembolik bağlantıları yeniden oluşturmak için koşmanız gerekebilir .


Bu benim için hile yaptı! Systemctl'nin servis dosyasını tekrar yüklemediğini anlamadı.
antonagestam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.