2016-09-02 17 views
5

Tôi muốn systemd bắt đầu tập lệnh và thử lại tối đa 5 lần, 30 giây. Đọc hướng dẫn sử dụng systemd.service và tìm kiếm trên Internet không tạo ra bất kỳ câu trả lời rõ ràng nào.Cách thiết lập dịch vụ systemd để thử lại 5 lần trong chu kỳ 30 giây

+0

Chỉ trong trường hợp đây là cách bạn có thể làm điều đó với [bất tử] (https://immortal.run/post/retries/) 'bất tử -w 30 -r 5 ' – nbari

Trả lời

12

Sau nhiều thử và sai tôi giải quyết vấn đề của tôi và nghĩ rằng nó đáng để gửi bài ở đây ...

Để cho phép tối đa là 5 lần thử lại cách nhau 30 giây sử dụng các tùy chọn sau đây trong tập tin dịch vụ systemd có liên quan.

[Unit] 
StartLimitInterval=200 
StartLimitBurst=5 
[Service] 
Restart=always 
RestartSec=30 

Điều này đã làm việc cho tôi đối với dịch vụ chạy tập lệnh bằng 'Loại = nhàn rỗi'. Lưu ý rằng 'StartLimitInterval' phải lớn hơn 'RestartSec * StartLimitBurst' nếu không dịch vụ sẽ được khởi động lại vô thời hạn.

+2

Có thể đáng chú ý là - theo systemd manpages chính thức - RestartSec và Restart là một phần của [System], trong khi StartLimitInterval và StartLimitBurst là một phần của [Unit]. –

+0

StartLimitInterval làm gì? –

+3

@GerhardHagerer Khi bạn nói [System], tôi nghĩ bạn có nghĩa là [Service]. Điều này làm việc cho tôi. – Haakon

Các vấn đề liên quan