คำขอเริ่มบริการซ้ำเร็วเกินไปปฏิเสธที่จะเริ่มต้นขีด จำกัด


23

ฉันมีบริการ systemd ที่แสดงข้อผิดพลาดต่อไปนี้ service start request repeated too quickly, refusing to start

ฉันเข้าใจว่าบริการได้รับการกำหนดค่าให้เริ่มต้นใหม่เมื่อเกิดข้อผิดพลาดและเริ่มต้นใหม่อีกครั้ง แต่เมื่อไหร่ที่มันไม่ยอมรีสตาร์ท? มีการ จำกัด หรือจำนวนที่กำหนดหรือไม่

ยิ่งไปกว่านั้นสิ่งที่too quicklyว่าหมายถึงอะไรมัน จำกัด จำนวนของการรีสตาร์ทในช่วงเวลาที่กำหนด?

คำตอบ:


26

ขีด จำกัด เริ่มต้นคืออนุญาตให้เริ่มใหม่ 5 ครั้งในระยะเวลา 10 วินาที หากบริการผ่านเกณฑ์นั้นเนื่องจากRestart=ตัวเลือกการกำหนดค่าในคำจำกัดความบริการจะไม่พยายามเริ่มต้นใหม่อีกต่อไป

อัตราถูกกำหนดค่าด้วยStartLimitIntervalSec=และStartLimitBurst=ตัวเลือกและRestart=ตัวเลือกจะควบคุมเมื่อ SystemD พยายามเริ่มบริการใหม่

ข้อมูลเพิ่มเติมในและman systemd.unitman systemd.service

จากนั้นใช้systemctl daemon-reloadเพื่อรีโหลดการกำหนดค่าหน่วย


3
ขอบคุณ @Sven การกำหนดค่าเหล่านี้อยู่ที่ไหน
Vikas Tiwari

ในไฟล์บริการ StartLimit...ตัวเลือกอาจจะไม่ได้ในการมีและใช้เพียงเริ่มต้น (5 เตะใน 10 วินาที)
สเวน

เป็นค่าเริ่มต้นที่เขียนในไฟล์ปรับแต่งอื่นหรือไม่?
Vikas Tiwari

3
ค่าเริ่มต้นสามารถกำหนดค่าได้เช่น/etc/systemd/system.confด้วยDefaultStartLimitIntervalSecตัวเลือก (และที่คล้ายกัน) อย่างไรก็ตามสิ่งเหล่านี้มักไม่ได้ตั้งค่าและใช้ค่าเริ่มต้นที่คอมไพล์แล้ว man systemd-systemดู
สเวน

@Sven ไฟล์บริการอยู่ที่ไหน?
ผู้ใช้

2

เป็นที่น่าสังเกตว่าความผิดพลาดบางอย่างดูเหมือนจะทำให้เกิดข้อผิดพลาดนี้ในขณะที่สาเหตุนั้นแตกต่างกัน

ฉันใส่ความคิดเห็นเป็นค่าเริ่มต้นและแทรกอินไลน์ทางเลือก **bantime = 7200 #3600**

ฉันยังเพิ่มส่วนใหม่[sasl]ซึ่งรวมชื่อตัวกรองซึ่งเปลี่ยนจากส่วนที่ระบุในบทความที่ฉันติดตาม

แทนที่จะทำข้อผิดพลาดทั้งสองอย่าง fail2ban ปฏิเสธที่จะรีสตาร์ทโดยให้

คำขอเริ่มบริการซ้ำเร็วเกินไปปฏิเสธที่จะเริ่มข้อผิดพลาด

เมื่อฉันแสดงความคิดเห็นในส่วน [sasl] ฉันได้รับข้อผิดพลาดซึ่งอ้างถึง bantime ที่ไม่ถูกต้องซึ่งฉันรวบรวมว่ามันไม่สามารถรับมือกับความคิดเห็นแบบอินไลน์ได้

เมื่อฉันแก้ไขและยกเลิกการลบเครื่องหมายส่วน [sasl] ใหม่ฉันพบข้อผิดพลาดที่ไม่พบตัวกรอง การแทนที่ตัวกรองที่มีชื่ออย่างถูกต้องจะส่งผลให้การโหลดล้มเหลวอีกครั้งตามที่คาดไว้

ดังนั้นหากคุณทำการเปลี่ยนแปลงและได้รับข้อผิดพลาดนี้ให้แน่ใจว่าคุณลบการเปลี่ยนแปลงและยังได้รับข้อผิดพลาดเดียวกันก่อนที่จะพยายามแก้ไขอาการ


0

วิธีหนึ่งที่รวดเร็วและสกปรกที่ฉันใช้สำหรับปัญหาเดียวกันนี้คือฉันสร้างสคริปต์ตัวห่อ bash ที่หลับเพื่อให้บริการไม่เริ่มต้นอย่างรวดเร็ว เหมาะกับฉันเพราะฉันไม่ต้องการการรีสตาร์ททันที ..

/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

คุณต้องลดระดับลง StartLimitIntervalSecเพื่อหลีกเลี่ยงการควบคุมปริมาณหรือตั้งค่าเป็น 0 เพื่อปิดการใช้งาน อ่านเอกสาร systemd
Vladimir Panteleev

0

คุณไม่ระบุว่าบริการใดที่ล้มเหลวในการเริ่มต้นด้วยข้อผิดพลาดนี้

ฉันมีปัญหานี้fail2banและในคำตอบของ MickGข้อผิดพลาดเป็นจริงในการกำหนดค่า fail2ban ของฉันและไม่มีอะไรเกี่ยวข้องกับการกำหนดค่าบริการ systemd

ด้วย fail2ban โซลูชันจะเริ่มต้นด้วย

fail2ban-client -x start

ซึ่งจะแสดงข้อความผิดพลาดอย่างละเอียด ด้วยเหตุผลบางอย่างเมื่อใช้systemctl start fail2banข้อผิดพลาดจริงจะหายไปและไม่สามารถพบได้ในบันทึกใด ๆ

เมื่อแก้ไขข้อผิดพลาดการกำหนดค่าบริการสามารถหยุดอีกครั้งหรือ (เริ่ม) กับ systemd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.