रूप Tsf ने कहा, समस्या एक bug in kernel 2.6.28 के कारण है। मैं अपना मूल उत्तर छोड़ देता हूं, क्योंकि मुझे लगता है कि यह वैसे भी सहायक हो सकता है।
ulimit मैनपेज से
-t The maximum amount of cpu time
in seconds.
क्या ulimit के संबंध में गिना जाता है केवल CPU समय है। इस तरह अपने कार्यक्रम शुरू करने के लिए प्रयास करें:
time myprogram
कि तुम्हें दिखाता कितना CPU समय यह वास्तव में उपयोग करता है।
मेरा संदेह यह है कि आपके अंतहीन पाश में sleep()
और नींद का समय प्रक्रिया के CPU समय में योगदान नहीं देता है।
यह एक दूसरे के बाद हत्या कर दी हो जाता है:
[email protected]:~$ bash
[email protected]:~$ ulimit -t 1; for ((i=1; 1; i++)); do a=1; done
Killed
यह हमेशा के लिए चलाने के लिए लगता है (लेकिन निश्चित रूप से नहीं करता है): इस तरह
[email protected]:~$ bash
[email protected]:~$ ulimit -t 1; for ((i=1; 1; i++)); do sleep 1; done
उपाय CPU समय ...
[email protected]:~$ time for ((i=1; i<5; i++)); do sleep 1; done
... और 5 सेकंड बाद ...
real 0m4.008s
user 0m0.000s
sys 0m0.012s
... केवल 12 एमएस CPU समय का उपयोग किया जाता है।
मैं ubuntu बिना इजाजत Jackalope (9,04)
Linux host 2.6.28-11-generiC#42-Ubuntu SMP
Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux
स्रोत
2009-06-10 21:58:47
पर इसे करने की कोशिश मैं इसे serverfault पर अंतर्गत आता है नहीं लगता। ऐसा सोचने का क्या कारण है? –
हाँ शायद आप सही हैं मैंने अभी बहुत जल्दी प्रतिक्रिया की है –