क्या कोई लंबे समय से चलने वाले कमांड को लॉन्च करने के लिए कोई bash/linux कमांड है, फिर इसे मिनटों के बाद मार दें? मुझे लगता है कि मैं कांटा और मारने का उपयोग कर पर्ल के साथ कुछ हैक कर सकता हूं, लेकिन क्या किसी को पहले से बाहर कुछ पता है?bash: n मिनट के लिए कमांड चलाएं, फिर इसे
उत्तर
अधिकांश जीएनयू/लिनक्स डिस्ट्रोज़ में अब timeout कमांड देखें।
timeout -sHUP 10m command
ही कार्यक्षमता http://www.pixelbeat.org/scripts/timeout
इसे इस के साथ आज़माएं, यह पृष्ठभूमि में आपका आदेश शुरू करता है, इसकी पीआईडी $ पी में स्टोर करता है, कुछ समय तक प्रतीक्षा करता है और इसे SIGHUP
से मारता है।
yourCommand & PID=$!
sleep ${someMinutes}m
kill -HUP $PID
चीयर्स
पुनश्च: यह है कि एक नींद कि एनएम (मिनट) के बारे में जानता हो जाती है, और, आप कुछ गणित :)
+1 और 'नींद $ के साथ प्राप्त किया जा सकता है ((मिनट * 60))' :) – khachik
Khachik, कि शिक्षित पाठक के लिए व्यायाम था;) –
धन्यवाद! यह अनिवार्य रूप से पर्ल मैंने अभी लिखा है, लेकिन इसे एक शेल मुहावरे के रूप में देखना अच्छा लगता है। मुझे अभी भी एक प्री-बिल्ट स्क्रिप्ट पसंद है, अगर किसी को किसी के बारे में पता है, लेकिन मैं इसे उत्तर के रूप में स्वीकार करूंगा। –
n=5
some_command &
pid=$!
at now + $n minutes <<<"kill -HUP $pid"
से अधिक at
उपयोग करने का लाभ क्या करना चाहते हो सकता है sleep
के लिए प्रतीक्षा कर रहा है कि आपकी स्क्रिप्ट नींद की अवधि समाप्त होने की प्रतीक्षा कर रही है। आप जा सकते हैं और अन्य चीजें कर सकते हैं और at
निर्दिष्ट समय पर असीमित रूप से आग लगेंगे। आपकी स्क्रिप्ट के आधार पर यह एक बहुत ही महत्वपूर्ण विशेषता हो सकती है।
मैंने इस +1 को एसिंक फीचर के लिए दिया है, हालांकि अवरोध करना मेरे मन में था। –
यह वही है जो मैं ढूंढ रहा था! –