मैं समय-समय पर बहुत कम अंतराल के साथ कमांड कैसे चलाता हूं और रिटर्न प्राप्त करता हूं?


12

मुझे लगभग 5 सेकंड के अंतराल में एक विशिष्ट कमांड को कॉल करने की आवश्यकता है। मैं पृष्ठभूमि में चलने वाले डेमन / प्रक्रिया को कैसे सेटअप करूँगा या ऐसा ही कुछ करूँगा? मैंने क्रोनोजर को देखा, लेकिन न्यूनतम अंतराल 1 मिनट का लगता है। किसी भी सलाह की सराहना की है;)

फेडोरा प्रणाली है।

EDIT कमांड एक बैशस्क्रिप्ट होगी, इसलिए "देखो" ऐसा मुझे नहीं लगता।

जवाबों:


10
(
  while true
  do
    your-command-here
    sleep 5
  done
) &
disown

किसके लिए है अवज्ञा? क्या होगा अगर मैं इसके बिना चलाऊं?
हंस

@ मार्सेल, disownशेल जॉब टेबल से आखिरी काम को हटा देता है, जिससे यह एक तरह का डेमॉन बन जाता है, जैसा आपने पूछा। यह वास्तविक डेमॉन नहीं है क्योंकि यह अभी भी टर्मिनल से जुड़ा हुआ है और उसी प्रक्रिया समूह में है, लेकिन शेल को बंद करने के बाद भी यह चालू रहेगा।
पीटर

ठीक है महान, यह काम करेगा: डी बस जिज्ञासा के लिए मैं कैसे "डेमन" बनाऊंगा?
हंस

@ मार्सेल का आसान तरीका है कि सी या अन्य भाषा से डेमॉन (3) को लाइब्रेरी एक्सेस (शेल स्क्रिप्ट से नहीं) कहा जाए। यह कठिन रास्ता है
पीटर

14

आपको क्यों लगता है कि 'वॉच' नहीं चलेगी?

$ cat periodic.sh
#!/bin/bash
echo $(date)
$ chmod +x periodic.sh

$ watch -n 5 ./periodic.sh

क्या होगा अगर मैं लॉग आउट कर दूं? स्क्रिप्ट चलती रहनी चाहिए।
हंस

यह बंद हो जाएगा, लेकिन आप nohup watch -n 5 ./periodic.sh > periodic.log &आउटपुट का उपयोग और स्टोर कर सकते हैं ।
नौफ्रगि

पाइपिंग के लिए '' उद्धरण का उपयोग करें क्योंकि वें "कमांड" sh -c "को दिया गया है, जिसका अर्थ है कि आपको वांछित प्रभाव प्राप्त करने के लिए अतिरिक्त उद्धरण का उपयोग करने की आवश्यकता हो सकती है"
andrej

2

शायद नोहप के साथ? यह शेल बंद होने के बाद नौकरी चलाने के लिए बनाया गया है।

आप स्क्रीन का उपयोग भी कर सकते हैं।


1

watchआदेश अपने मामले में उचित है, मैं एक टर्मिनल बहुसंकेतक (जैसे tmux, स्क्रीन, आदि) का प्रयोग करेंगे और उसके बाद का उपयोग कर आदेश चला

watch -n 5 ./script.sh

उस स्थिति में भी यदि आप टर्मिनल या ssh कनेक्शन को मशीन से बंद करते हैं तो भी स्क्रिप्ट चालू रहेगी।

इस दृष्टिकोण की एकमात्र सीमा यह है कि स्क्रिप्ट हर 5 सेकंड में तभी चलेगी जब उसने उस समय अंतराल के भीतर अपना निष्पादन पूरा कर लिया हो।


चूंकि ओपी ने स्पष्ट रूप से कहा कि उसकी राय में watchऐसा नहीं किया जाएगा, इसलिए कृपया बताएं कि आपका जवाब इस सीमा पर या इस बिंदु पर आपको क्यों लगता है कि ओपी को watchकार्य के लिए अनुपयुक्त होने के बारे में गलत समझा गया था ।
एडमिनबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.