ไม่สามารถเริ่ม Systemd Timer
ฉันมีการกำหนดค่าตัวจับเวลา systemd ต่อไปนี้
[Unit]
Description=Timer for Service
[Timer]
Unit=service-unit.service
OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00
# *-*-* means every day and 10:00:00 is the time of day (UTC)
[Install]
WantedBy=timers.target
เมื่อพยายามเริ่มตัวจับเวลาฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
Failed to parse calendar specification, ignoring: Mon..Fri *-*-* 13..23...5,30,45:00 service-timer.timer lacks value setting. Refusing.
ฉันพยายามตรวจสอบการประทับเวลาด้วยsystemd-analyze calendar "Mon..Fri *-*-* 13..23:5,30,45:00"แต่ดูเหมือนว่าเวอร์ชันของฉันจะไม่มีตัวเลือกนี้ มันกลับมาUnknown operation 'calendar'.
เมื่อพยายามบนเซิร์ฟเวอร์อื่นที่มีตัวเลือกปฏิทินดูเหมือนว่าจะเป็นการประทับเวลาที่ถูกต้อง
$ sudo systemd-analyze calendar "Mon..Fri *-*-* 13..23:0,15,30,45:00"
Original form: Mon..Fri *-*-* 13..23:0,15,30,45:00
Normalized form: Mon..Fri *-*-* 13..23:00,15,30,45:00
Next elapse: Thu 2020-09-10 14:00:00 EDT
(in UTC): Thu 2020-09-10 18:00:00 UTC
From now: 1min 21s left
เซิร์ฟเวอร์ที่ใช้งานไม่ได้คือ CentOS 7 และเซิร์ฟเวอร์ที่ใช้งานได้คือ Ubuntu 18.04 Minimal
คำตอบ
เวอร์ชันของ systemd ที่มีอยู่ใน CentOS 7 ไม่รองรับช่วงที่กำหนดด้วย... 13..23สามารถแสดงเป็น13/1(ชั่วโมงเริ่มต้นที่ 13 และทุกชั่วโมง) แต่ฉันคิดว่าMon..Friสามารถแสดงเป็นรายการของวันเท่านั้นดังนั้น
OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00
กลายเป็น
OnCalendar=Mon,Tue,Wed,Thu,Fri *-*-* 13/1:0,15,30,45:00
ขอบคุณทุกคนที่ตอบ สำหรับผมเลือกที่ดีที่สุดคือการอัปเดต systemd ใช้ย้ายกลับจาก Facebook ที่ผมพบว่าที่นี่ ด้วยวิธีนี้ฉันสามารถใช้ประโยชน์จากคุณสมบัติใหม่ ๆ แทนที่จะใช้วิธีแก้ปัญหา
หลังจากอัปเดตจาก 219 เป็น 231 มันใช้งานได้โดยไม่มีปัญหา คำแนะนำการอัพเดตพื้นฐานที่มีให้ใน repo นั้นมีดังต่อไปนี้:
คำแนะนำในการติดตั้ง
- อย่าลืมแก้ไข / etc / selinux / config และกำหนดให้ SELinux อนุญาตก่อนที่จะอัปเดตมิฉะนั้นระบบของคุณจะไม่บูตอีกต่อไป!
# wget https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo -O /etc/yum.repos.d/jsynacek-systemd-centos-7.repo# yum update systemd- รีบูต