systemd จับเวลาทุก 15 นาที


33

ฉันพยายามสร้าง systemd timer ที่ทำงานทุกๆ 15 นาที ตอนนี้ฉันมี:

  • timer-fifteen.timer:

    [Unit]
    Description=15min timer
    
    [Timer]
    OnBootSec=0min
    OnCalendar=*:*:0,15,30,45
    Unit=timer-fifteen.target
    
    [Install]
    WantedBy=basic.target  
    
  • timer-fifteen.target:

    [Unit]
    Description=15min Timer Target
    StopWhenUnneeded=yes
    

สิ่งนี้รันซ้ำแล้วซ้ำอีกโดยไม่หยุด มันจำเป็นต้องใช้*:0,15,30,45:*แทนหรือไม่? ฉันจะทำงานนี้ได้อย่างไร


2
ไวยากรณ์ของคุณไม่ได้มีความหมายทุก ๆ 15 วินาทีใช่ไหม
Pavel Šimerda

คำตอบ:


43

ไวยากรณ์ของคุณแปลเป็นทุก ๆ 15 วินาทีถ้าคุณต้องการทุก ๆ 15 นาที IMO วิธีที่อ่านง่ายที่สุดคือ:

OnCalendar=*:0/15

คำตอบที่คล้ายกับสิ่งที่คุณใช้ในคำถามคือ:

OnCalendar=*:0,15,30,45

ข้อมูลมากกว่านี้:


3
OnCalendar=0/8:00:00ถูกต้องสำหรับการพูดว่า "ทำงานทุก 8 ชั่วโมง"?
shackra

4
ใช่. แต่ตอนนี้คุณคงรู้แล้ว :)
Pavel Šimerda

ฉันไม่ได้ แต่ฉันใช้มันต่อไปฮ่า ๆ ขอบคุณสำหรับการยืนยัน!
shackra

OnCalendar=*:0/15ควรแปลให้ถูกOnCalendar=*:0,15,30,45ต้อง (เพราะฉันอ่านถูกต้องในเอกสาร) ทุก 8 OnUnitActiveSec=8hoursชั่วโมงจะได้รับรู้ด้วย
Debilski

3
เมื่อระบุช่วงเวลา, การส่งออกของอาจจะมาในที่มีประโยชน์เช่นลองsystemd-analyze systemd-analyze calendar *:0/15
เซบาสเตียน

12

ตามsystemd.timeการตั้งค่า

OnCalendar=*:0/15

แปลว่าเป็น

OnCalendar=*:0,15,30,45

กล่าวคือ มันเปิดใช้งานหน่วยที่เต็มชั่วโมงเช่นเดียวกับที่ไตรมาสที่ผ่านมาครึ่งที่ผ่านมาและไตรมาสที่

นี่อาจไม่ใช่สิ่งที่คุณต้องการหรือสิ่งที่คุณต้องการในทุกกรณีทั้งนี้ขึ้นอยู่กับบริการของคุณ

ตัวจับเวลาที่ทำงานทุก ๆ 15 นาที - ตัวอย่างเช่นที่ 1:02, 1:17, 1:32, 1:47, 2:02, … - ขึ้นอยู่กับเวลาที่วิ่งครั้งสุดท้าย - สามารถทำได้ด้วยsystemdการตั้งค่าตัวจับเวลา

OnUnitActiveSec=15min

ตอนนี้คุณจะต้องการให้หน่วยเริ่มเวลาหลังจากบูต (ยกเว้นกรณีที่คุณต้องการเปิดใช้งานหน่วยด้วยตนเองหรือมีการพึ่งพาซึ่งทำเช่นนั้น) ดังนั้นคุณควรระบุ

OnBootSec=10min
OnUnitActiveSec=15min

เพื่อให้หน่วยเริ่มต้น 10 นาทีหลังจากบู๊ตแล้วทุก ๆ 15 นาทีหลังจากนั้นเป็นครั้งแรก

นอกจากนี้ยังมีการตั้งค่าOnUnitInactiveSecที่เริ่มนับเวลาหลังจากที่บริการหยุดทำงาน (หรือโดยทั่วไปแล้วเครื่องได้ปิดการใช้งาน)


1
คำเตือน: ดูเหมือนว่าจะเสียสวยOnUnitActiveSec
Anders Kaseorg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.