सिस्टमैड टाइमर हर 15 मिनट में


33

मैं एक सिस्टम टाइमर बनाने की कोशिश कर रहा हूं जो हर 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 सेकंड में नहीं होता है ?
पावेल Paमरदा

जवाबों:


43

आपका सिंटैक्स हर 15 सेकंड में अनुवाद करता है , यदि आप हर 15 मिनट में चाहते हैं, तो IMO सबसे पठनीय तरीका है:

OnCalendar=*:0/15

आपके प्रश्न में आपके द्वारा उपयोग किए जाने वाले उत्तर के समान है:

OnCalendar=*:0,15,30,45

अधिक जानकारी:


3
OnCalendar=0/8:00:00"हर 8 घंटे चला" कहने के लिए सही है?
शक रात्रि

4
हाँ। लेकिन आप शायद पहले से ही जानते हैं कि अब तक। :)
पावेल erमरदा

मैं नहीं था, लेकिन मैं वैसे भी योग्य था। पुष्टि करने के लिए शुक्रिया!
3

OnCalendar=*:0/15OnCalendar=*:0,15,30,45वास्तव में (डॉक्स में इसे सही ढंग से पढ़ा जाए) में अनुवाद करना चाहिए । हर 8 घंटे के साथ महसूस किया जाएगा OnUnitActiveSec=8hours
डेबिल्स्की

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, ... - हमेशा उस समय पर निर्भर करता है जब वह अंतिम बार चलता था - सिस्टम के साथ पूरा किया जा सकता है । टाइमर सेटिंग

OnUnitActiveSec=15min

अब, आप यह भी चाहेंगे कि यूनिट बूट के बाद कुछ समय के लिए शुरू हो (जब तक आप यूनिट को मैन्युअल रूप से सक्रिय नहीं करना चाहते हैं या एक निर्भरता है जो ऐसा करता है), इसलिए आपको शायद निर्दिष्ट करना चाहिए

OnBootSec=10min
OnUnitActiveSec=15min

इकाई को बूट के 10 मिनट बाद और फिर हर 15 मिनट बाद शुरू करना चाहिए।

इसके अतिरिक्त, वह सेटिंग है OnUnitInactiveSecजो सेवा बंद होने के बाद समय की गिनती शुरू करता है (या, आमतौर पर, इकाई ने निष्क्रिय कर दिया है)।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.