कारण यह है कि एक कांटा-बम काम करता है क्योंकि किसी भी समय चलने वाली प्रक्रियाओं की संख्या के लिए सीमित सीमा होती है, और एक फोर्क-बम इस सीमा को भरने के लिए डिज़ाइन किया गया है।
क्योंकि आपके द्वारा प्रदत्त फोर्कबॉम्ब कोड मर जाता है अगर यह किसी बच्चे की प्रक्रिया को जन्म नहीं दे सकता है, तो मूल प्रक्रियाएं वास्तव में आसपास नहीं रहती हैं, लेकिन तथ्य यह है कि बच्चे नए ग्रैंड * -इल्डरेन बनाते हैं, प्रक्रिया तालिका पूरी होती है।
तो नींद समाधान कुछ प्रक्रियाओं में छींकने के लिए डिज़ाइन किया गया है जो केवल थोड़े समय के लिए सोते हैं, और प्रत्येक नींद की प्रक्रिया के लिए जो बनने का प्रबंधन करती है, वहां कम फोर्क-बम होते हैं। आखिर में नींद की प्रक्रिया प्रोसेस टेबल को भर देती है और कांटा बम मर जाते हैं।
एक बार प्रक्रिया तालिका पूरी नींद प्रक्रियाओं से भरी हुई है, जबकि लूप को मार दिया जा सकता है, और नींद की प्रक्रिया खत्म होने के बाद नींद की प्रक्रिया मर जाएगी। समस्या हल की गई।
जैसा कि पहले ही zsh आदेश का महत्वपूर्ण हिस्सा उल्लेख किया गया है है रन-इन-पृष्ठभूमि &
, तो बैश आदेश मूलतः एक ही अन्य उत्तर में दी गई होगी:
while (sleep 100 &) do; done
मैं डॉन ऐसा नहीं लगता कि nohup
/!
हिस्सा तब तक महत्वपूर्ण है जब तक आप नींद के समय में लॉग आउट नहीं करना चाहते हैं, लेकिन अगर मैं गलत हूं तो मुझे सीधे सेट करने में खुशी होगी।
स्रोत
2009-02-22 12:02:45