Yêu cầu bắt đầu dịch vụ lặp lại quá nhanh, từ chối giới hạn bắt đầu


23

Tôi có một dịch vụ systemd hiển thị lỗi sau service start request repeated too quickly, refusing to start

Tôi hiểu rằng dịch vụ được cấu hình để khởi động lại khi không thành công và nó đang khởi động lại nhiều lần. Nhưng khi chính xác thì nó từ chối khởi động lại? Có giới hạn hoặc số xác định nó?

Hơn nữa, too quicklychính xác nghĩa là gì, nó có phải là giới hạn số lần khởi động lại trong một khoảng thời gian nhất định không?

Câu trả lời:


26

Giới hạn mặc định là cho phép 5 lần khởi động lại trong khoảng thời gian 10 giây. Nếu một dịch vụ vượt quá ngưỡng đó do Restart=tùy chọn cấu hình trong định nghĩa dịch vụ, nó sẽ không cố gắng khởi động lại nữa.

Tỷ lệ được cấu hình với StartLimitIntervalSec=StartLimitBurst=các tùy chọn và Restart=điều khiển tùy chọn khi SystemD cố gắng khởi động lại một dịch vụ.

Thêm thông tin trong man systemd.unitman systemd.service.

Sau đó sử dụng systemctl daemon-reloadđể tải lại cấu hình đơn vị.


3
Cảm ơn @Sven. Những cấu hình này được định nghĩa ở đâu?
Vikas Tiwari

Trong tập tin dịch vụ. Các StartLimit...tùy chọn có thể không có trong đó và chỉ sử dụng mặc định (5 khởi động lại sau 10 giây).
Sven

Là giá trị mặc định được ghi trong một số tập tin cấu hình khác?
Vikas Tiwari

3
Mặc định có thể được cấu hình, ví dụ như trong /etc/systemd/system.confcác DefaultStartLimitIntervalSectùy chọn (và tương tự). Tuy nhiên, những thứ này thường không được đặt và mặc định được biên dịch được sử dụng. Xem man systemd-system.
Sven

@Sven Tệp dịch vụ ở đâu?
Người dùng

2

Điều đáng chú ý là một số lỗi dường như ném lỗi này, trong khi nguyên nhân là khác nhau.

Tôi đã nhận xét các bantime mặc định và chèn một nội tuyến thay thế **bantime = 7200 #3600**

Tôi cũng đã thêm một phần mới [sasl] , bao gồm tên bộ lọc đã thay đổi từ phần được đưa ra trong bài viết tôi đang theo dõi.

Thay vì lỗi ở một trong hai lỗi đó, fail2ban đã từ chối khởi động lại, đưa ra

yêu cầu bắt đầu dịch vụ lặp lại quá nhanh, từ chối bắt đầu lỗi

Chỉ khi tôi nhận xét phần [sasl], tôi mới nhận được một lỗi liên quan đến một thời gian không hợp lệ, từ đó tôi đã thu thập được rằng nó không thể đối phó với các bình luận nội tuyến.

Khi tôi sửa lỗi đó và bỏ sót phần [sasl] mới, tôi đã gặp một lỗi mà bộ lọc không tìm thấy. Thay thế cho bộ lọc được đặt tên chính xác dẫn đến tải lại fail2ban như mong đợi.

Vì vậy, nếu bạn thực hiện thay đổi và gặp lỗi này, hãy đảm bảo bạn xóa các thay đổi và vẫn nhận được lỗi tương tự trước khi cố gắng khắc phục một triệu chứng.


0

Một cách nhanh chóng và bẩn thỉu mà tôi vừa sử dụng cho cùng một vấn đề này là tôi đã tạo một tập lệnh bash Wrapper ngủ để dịch vụ không bắt đầu nhanh như vậy. Làm việc cho tôi vì tôi không cần khởi động lại ngay lập tức ..

/root/s ngủ_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

Bạn cần hạ xuống StartLimitIntervalSec để tránh điều chỉnh hoặc đặt thành 0 để tắt. Đọc tài liệu systemd.
Vladimir Panteleev

0

Bạn không chỉ định dịch vụ nào không bắt đầu với lỗi này.

Tôi gặp vấn đề này fail2banvà như trong câu trả lời của MickG , lỗi thực sự nằm ở cấu hình fail2ban của tôi và không liên quan gì đến cấu hình dịch vụ systemd.

Với fail2ban, giải pháp là bắt đầu với

fail2ban-client -x start

Nó sẽ hiển thị một thông báo lỗi chi tiết. Vì một số lý do, khi sử dụng systemctl start fail2banlỗi thực sự bị mất và không thể tìm thấy trong bất kỳ nhật ký nào.

Khi lỗi cấu hình được sửa, dịch vụ có thể được dừng lại hoặc (bắt đầu lại) với systemd.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.