her 15 dakikada bir sistem zamanlayıcısı


33

Her 15 dakikada bir çalışan bir sistem zamanlayıcı yapmaya çalışıyorum. Şu anda var:

  • 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
    

Bu, durmadan tekrar tekrar çalışır. *:0,15,30,45:*Bunun yerine olması gerekiyor mu ? Bu işi nasıl yapabilirim?


2
Sözdiziminiz her 15 saniyede bir anlama gelmiyor mu?
Pavel Šimerda

Yanıtlar:


43

Sözdiziminiz her 15 saniyede bir çevirir , her 15 dakikada bir isterseniz , IMO en okunaklı yoldur:

OnCalendar=*:0/15

Sorunuzda kullandıklarınıza en çok benzeyen cevap:

OnCalendar=*:0,15,30,45

Daha fazla bilgi:


3
OnCalendar=0/8:00:00"8 saatte bir koş" demek doğru mu?
shackra

4
Evet. Ama muhtemelen bunu çoktan biliyorsundur. :)
Pavel Šimerda,

Yapmadım, ama yine de lol kullandım. Onaylamak için teşekkür ederim!
shackra

OnCalendar=*:0/15OnCalendar=*:0,15,30,45tam olarak çevirmeliyim (verilen belgelerde doğru okudum). Her 8 saatte bir gerçekleşirdi OnUnitActiveSec=8hours.
Debilski

3
Bir aralık belirlerken, çıktısı systemd-analyzekullanışlı olabilir, örneğin deneyin systemd-analyze calendar *:0/15.
sebastian

12

Sistem saatine göre ayar

OnCalendar=*:0/15

tam olarak çevirir

OnCalendar=*:0,15,30,45

yani. Birimi tam olarak tam saatte, çeyrek geçe, yarı geçe ve çeyreğe kadar harekete geçirir.

Hizmetinize bağlı olarak, istediğiniz ne olabilir, ne de her durumda ihtiyacınız olan olmayabilir.

Her 15 dakikada bir çalışan bir zamanlayıcı - örneğin 1:02, 1:17, 1:32, 1:47, 2:02,… - her zaman en son çalıştırma saatine bağlı olarak - sistemd ile gerçekleştirilebilir . zamanlayıcı ayarı

OnUnitActiveSec=15min

Şimdi, ünitenin önyüklemeden sonra bir süre başlamasını da isteyeceksiniz (üniteyi manuel olarak etkinleştirmek veya bunun için bir bağımlılığa sahip olmak istemiyorsanız),

OnBootSec=10min
OnUnitActiveSec=15min

Ünitenin önyüklemeden 10 dakika sonra ilk kez çalıştırdıktan sonra her 15 dakikada bir çalıştırılması.

Ek olarak, OnUnitInactiveSecservis durdurulduktan sonraki zamanı saymaya başlayan bir ayar vardır (veya daha genel olarak ünite inaktive edilmiştir).


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.