Hizmet başlatma isteği çok hızlı bir şekilde tekrarlandı ve limit başlatmayı reddetti


23

Aşağıdaki hatayı görüntüleyen bir systemd hizmetim var service start request repeated too quickly, refusing to start

Hizmetin başarısızlık durumunda yeniden başlatılmak üzere yapılandırıldığını ve tekrar tekrar başlatıldığını anlıyorum. Ama tam olarak ne zaman yeniden başlatmayı reddediyor? Bunu tanımlayan bir sınır veya sayı var mı?

Üstelik, too quicklytam olarak ne anlama geliyor, belirli bir zaman diliminde yeniden başlatma sayısı sınırı mı?

Yanıtlar:


26

Varsayılan sınır, 10 saniye içinde 5 yeniden başlatmaya izin vermektir. Bir hizmet Restart=, hizmet tanımındaki yapılandırma seçeneğinden dolayı bu eşiği aşarsa , daha fazla yeniden başlatmaya çalışmaz.

Sistem seçenekleri bir hizmeti yeniden başlatmayı denediğinde, oranlar StartLimitIntervalSec=ve StartLimitBurst=seçenekleriyle yapılandırılır ve Restart=seçenek denetlenir.

Daha fazla bilgi içinde man systemd.unitve man systemd.service.

Ardından systemctl daemon-reloadünite yapılandırmasını yeniden yüklemek için kullanın .


3
Teşekkürler @Sven. Bu yapılandırmalar nerede tanımlanmaktadır?
Vikas Tiwari

Servis dosyasında. StartLimit...Seçenek var olması ve sadece varsayılan (10 saniyede 5 yeniden başlar) kullanmıyor olabilir.
Sven

Varsayılan değer başka bir yapılandırma dosyasında yazılı mı?
Vikas Tiwari

3
Varsayılan olabilir de, örneğin yapılandırılabilir /etc/systemd/system.confile DefaultStartLimitIntervalSec(ve benzeri) seçenekleri. Ancak, bunlar genellikle ayarlanmaz ve derlenmiş varsayılanlar kullanılır. Bakın man systemd-system.
Sven

@Sven Servis dosyası nerede?
Kullanıcı

2

Bazı hataların bu hatayı fırlattığını, bunun nedeninin farklı olduğunu belirtmekte fayda var.

Ben varsayılan bantime yorum yaptı ve alternatif bir satır içi ekledi **bantime = 7200 #3600**

Ayrıca takip ettiğim makalede değiştirileni değiştiren bir filtre adı içeren yeni bir bölüm [sasl] ekledim .

Bunlardan ikisinde de hata yapmak yerine, fail2ban yeniden başlatmayı reddetti ve

servis başlatma isteği çok hızlı bir şekilde tekrarlandı

Yalnızca [sasl] bölümünü yorumladığımda, satır içi yorumlarla baş edemediğini belirttiğim geçersiz bir bantime karşılık gelen bir hata aldım.

Bunu düzelttikten ve yeni [sasl] bölümünü yorumladığımda, filtrenin bulunamadığıma dair bir hatayla karşılaştım. Doğru adlandırılmış filtrenin yerine geçmesi, beklendiği gibi fail2ban'ın yeniden yüklenmesine neden oldu.

Bu nedenle, değişiklik yapar ve bu hatayı alırsanız, bir semptom düzeltmeye çalışmadan önce değişiklikleri kaldırdığınızdan ve hala aynı hatayı aldığınızdan emin olun.


0

Bu aynı problem için kullandığım hızlı ve kirli bir yöntem, hizmetin hızlı başlamaması için uyuyan bir bash sarmalayıcı betiği oluşturdum. Acil yeniden başlatmalara ihtiyacım olmadığı için benim için çalışıyor ..

/root/sleep_and_start_autossh.sh

    /bin/bash -e
    sleep 200
    /usr/bin/autossh args...

/etc/systemd/system/autossh.service

    StartLimitIntervalSec=120 # this didn't seem to do much for me.
    #ExecStart=/usr/bin/autossh args ...
    ExecStart=/root/sleep_and_start_autossh.sh

Azalmayı önlemek için alçaltmanız StartLimitIntervalSec veya devre dışı bırakmak için 0'a ayarlamanız gerekir. Sistem belgelerini okuyun.
Vladimir Panteleev

0

Hangi hizmetin bu hatayla başlayamayacağını belirtmezsiniz.

Ben bu sorun vardı fail2banve olduğu gibi MickG cevabında , hata benim fail2ban konfigürasyonda aslında idi ve systemd hizmet yapılandırma ile ilgisi yoktu.

Fail2ban ile, çözüm başlamaktır.

fail2ban-client -x start

hangi ayrıntılı bir hata mesajı gösterecektir. Nedense, systemctl start fail2bangerçek hatayı kullanırken kaybolur ve herhangi bir kayıtlarda bulunamaz.

Yapılandırma hatası düzeltildikten sonra, servis tekrar durdurulabilir veya systemd ile yeniden başlatılabilir.

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.