Tôi có một vài dịch vụ (trình tạo trang tĩnh) mà tôi muốn kích hoạt thường xuyên từ cùng một bộ đếm thời gian systemd. tôi đã tìm thấy câu hỏi/câu trả lời này, bao gồm chính xác những gì tôi muốn làm và mô tả một thiết lập theo đó một .Mục tiêu
tập tin đó muốn =
nhiều dịch vụ được kích hoạt bởi một bộ đếm thời gian tương ứng. Điều này nghe có vẻ hay, nhưng tôi thấy rằng khi tôi thực sự thiết lập điều này, nó chỉ kích hoạt Một lần, sau đó tự vô hiệu hóa!
Tôi đã chuẩn bị một ví dụ hoạt động tối thiểu (điều này không kích hoạt nhiều dịch vụ, nhưng thể hiện cùng một vấn đề):
test-timer.timer
:
[Đơn vị]
Mô tả=Một bộ đếm thời gian kiểm tra
[Hẹn giờ]
OnCalendar=*-*-* *:*:30
Unit=test-timer.target
[Cài đặt]
WantedBy=timers.target
test-timer.target
:
[Đơn vị]
Mô tả=Đơn vị mục tiêu
Muốn=test-timer.service
Sau=test-timer.service
[Cài đặt]
WantedBy=timers.target
test-timer.service
:
[Đơn vị]
Mô tả=Chạy thử nghiệm
[Dịch vụ]
ExecStart=/usr/bin/bash -c "date --rfc-3339='seconds' >> /tmp/test-timer-output"
[Cài đặt]
Ngoài ra=test-timer.target
Kích hoạt bộ đếm thời gian:
$ sudo cp test-timer.* /etc/systemd/system/
$ Sudo systemctl enable --now test-timer.timer
Đã tạo liên kết tượng trưng /etc/systemd/system/timers.target.wants/test-timer.timer â /etc/systemd/system/test-timer.timer.
Sau đó, khi tôi nhìn vào đầu ra của systemctl list-timers --all
, trước lần chạy đầu tiên tôi nhận được (bỏ qua các bộ hẹn giờ khác):
TIẾP THEO TRÁI ĐƠN VỊ VƯỢT QUA CUỐI CÙNG KÍCH HOẠT
Thứ sáu 2021-10-08 10:38:30 EDT 21 giây còn lại n/a n/a test-timer.timer test-timer.target
Sau lần chạy đầu tiên, TIẾP THEO
và TRÁI
đã được thay thế bằng không có
:
TIẾP THEO TRÁI ĐƠN VỊ VƯỢT QUA CUỐI CÙNG KÍCH HOẠT
n/a n/a Thứ Sáu 2021-10-08 10:38:32 EDT 1 phút 5 giây trước test-timer.timer test-timer.target
Tôi cũng đã thử thêm Kiên trì = đúng
đến test-timer.target
và cho phép rõ ràng test-timer.target
, nhưng cả hai đều không hoạt động. Bất cứ lúc nào tôi làm systemctl khởi động lại test-timer.timer
, nó khởi động lại, nhưng chỉ kích hoạt một lần chạy, sau đó không bao giờ có lần chạy tiếp theo.
Nếu tôi loại bỏ lớp gián tiếp bằng cách thay đổi Đơn vị=
dòng test-timer.timer
đến Đơn vị=test-timer.service
, dịch vụ sẽ tự kích hoạt một cách vui vẻ mỗi phút như mong đợi.
Tôi có thiếu một số bước cấu hình hoặc cài đặt không?