systemd - Đơn vị hẹn giờ bắt chước hành vi anacron


13

Tôi cần phải viết một đơn vị hẹn giờ cho một máy được bật thường xuyên (ví dụ: thiết lập máy tính để bàn cổ điển). Bộ hẹn giờ này cần được kích hoạt thường xuyên nhưng không thường xuyên (ví dụ hàng tuần, hàng tháng).

Tôi đã tìm thấy một số cách tiếp cận nhưng tất cả chúng đều không thực sự phù hợp:

  • Theo các trang hướng dẫn, chỉ các lệnh OnBootSecOnStartupSecsẽ được kích hoạt nếu thời điểm được định cấu hình là trong quá khứ. Tôi cũng tìm thấy một số ví dụ sử dụng kết hợp những điều này với OnActiveSecđể xác định một sự kiện thông thường. Vấn đề là: Mỗi khi máy khởi động, bộ hẹn giờ sẽ kích hoạt bộ phận được cấu hình. Nếu bạn có một bộ đếm thời gian nên chạy ONCE một tuần / tháng thì quá thường xuyên. Ví dụ: Tôi không muốn làm cho nhật ký của mình bị xoay vòng ba lần một ngày ...

  • Giải pháp với OnCalendarchỉ thị. Nếu máy tắt nguồn tại thời điểm được định cấu hình (chủ yếu là nửa đêm vì nếu bạn bỏ qua giờ trong thông số thời gian, nó sẽ mặc định là 00:00:00), bộ hẹn giờ sẽ không được kích hoạt sau lần khởi động tiếp theo. Đó là ít nhất làm thế nào tôi có được nó. Có đúng không ?

Vì vậy, đây là câu hỏi: Bộ
đếm thời gian với các sự kiện lịch được kích hoạt ngay sau lần khởi động tiếp theo nếu thời gian được định cấu hình trong quá khứ?
Nếu không: Có một cách giải quyết để có được một hành vi như vậy?


Ok, tôi biết điều này . Nó vẫn là con đường để đi? Hoặc có những giải pháp thanh lịch hơn? Có một cái gì đó được lên kế hoạch để cải thiện tình hình hiện tại?
mmh

Câu trả lời:


15

Tính năng này đã được triển khai trong systemd (ver> = 212) bằng cách sử dụng Persistent=chỉ thị, do đó bạn chỉ cần chèn Persistent=truevào tệp đơn vị trong khi sử dụng OnCalendar=chỉ thị để thiết lập ngày / giờ để chạy công việc.

Kiên trì =

Đưa ra một lập luận boolean. Nếu đúng, thời gian khi đơn vị dịch vụ được kích hoạt lần cuối được lưu trữ trên đĩa. Khi bộ hẹn giờ được kích hoạt, bộ phận dịch vụ được kích hoạt ngay lập tức nếu nó được kích hoạt ít nhất một lần trong suốt thời gian khi bộ hẹn giờ không hoạt động. Điều này rất hữu ích để bắt kịp các lần chạy dịch vụ bị bỏ lỡ khi máy tắt. Lưu ý rằng cài đặt này chỉ có hiệu lực đối với bộ định thời được định cấu hình với OnCalWiki =.


Nó không phải là ngược lại? OP hỏi về việc loại bỏ các lần chạy thêm do có cả hai OnBootSecOnActiveSec. Persistentlà chạy một lần khi khởi động nếu ít nhất một lần chạy bị trượt do bị xuống?
x-yuri

Vâng, bạn có thể có nghĩa là theo cách này .
x-yuri

0

Theo email này trong danh sách gửi thư của systemd-devel, hành vi mong muốn nằm trong lộ trình và sẽ được thêm vào trong tương lai.

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.