मैं सिर्फ cmd में निम्नलिखित कमांड है
perl csv2rrd3.pl
लेकिन यह हमेशा लंबे समय तक चलता है। क्या इसके लिए कोई समय निर्धारित करने का कोई तरीका है? या मैं इसे पर्ल स्क्रिप्ट में करना चाहिए ?? और कैसे?
धन्यवाद
उत्तर:
उत्तर № 1 के लिए 7पर्ल के अंदर, आप एक सेट कर सकते हैं अलार्म कुछ सेकंड के बाद रवाना होने के लिए। फिर आप ईवेंट को पकड़ने के लिए सिग्नल हैंडलर का उपयोग कर सकते हैं। किसी भी समय केवल एक अलार्म सक्रिय हो सकता है
{ # enter new scope
# set signal handler
local $SIG{ALRM} = sub {
# do cleanup, like closing sockets or whatever
print STDERR "exited with ALARMn";
exit;
};
alarm 30; # try half a minute
...; # do expensive stuff
}
जवाब के लिए 5 № 2
विंडोज़ कमांड लाइन से, आप पहले कर सकते हैं start
अपनी खिड़की में पर्ल स्क्रिप्ट, श्रृंखला के साथ timeout
प्रतीक्षा करने की आज्ञा एक्स सेकंड (यहाँ 2) और फिर इसे फिर से श्रृंखला के साथ taskkill
प्रक्रिया को मारने के लिए आदेश।
start perl csv2rrd3.pl & timeout -t 2 & taskkill /IM perl.exe
ऊपर की रेखा हर पर्ल प्रक्रिया को मार देगी। केवल आपके द्वारा शुरू की गई हत्या करने के लिए, आप कस्टम विंडो शीर्षक का उपयोग कर सकते हैं
start "KILLME" perl csv2rrd3.pl & timeout -t 2 & taskkill /FI "WINDOWTITLE eq KILLME" /IM perl.exe
जवाब के लिए 0 № 3
ठीक है, टाइमआउट के बारे में निश्चित नहीं है, लेकिन आप कुछ विशिष्ट समय की प्रतीक्षा कर सकते हैं और फिर प्रक्रिया को मार सकते हैं।
sleep(10) # sleep 10 seconds
kill # and insert PID of the process (see command ps)