दिलचस्प पोस्ट
दो सरणियों को PHP में कुंजी मान जोड़े के रूप में मिलाएं एकाधिक संदेश प्रकारों को संभालने के लिए डिज़ाइन पैटर्न @ सत्रसैक्ड बीन दायरे को खो देता है और हर समय पुन: निर्मित हो जाता है, फ़ील्ड शून्य हो जाते हैं एसक्यूएल – समूह में उपनाम का उपयोग करके पहचान स्तंभों को सम्मिलित करने के लिए मैं संस्था ढांचा कैसे लागू करूं? # परिभाषित चर का प्रकार ggplot2 0.9.0 स्वचालित रूप से साजिश कथा से अप्रयुक्त कारक स्तर छोड़ रहा है? क्यों प्रतिक्रिया। रीडायरेक्ट सिस्टम का कारण होता है। थ्रेडिंग। थ्रेड एडोबेशन? कैसे जावा में एक जावा स्ट्रिंग literally unescape? एकाधिक विरासत के लिए एक प्रयोग? एंड्रॉइड – एक्शन बार में खोजदृश्य पर NullPointerException जावास्क्रिप्ट का उपयोग करके एक तत्व का पृष्ठभूमि रंग कैसे प्राप्त करें? सी ++ में परिपत्र शिफ्ट (घुमाएगी) संचालन के लिए सर्वोत्तम अभ्यास MATLAB में नक्शा फ़ंक्शन? जावा में किसी। PNG फाइल पर मैं अक्ष को कैसे रख सकता हूँ?

बैश कमांड: () {: |: और} ;: कर्नेल मौत के लिए प्रक्रियाएं पैदा करेगा क्या आप सिंटैक्स की व्याख्या कर सकते हैं?

मैं इस पृष्ठ पर ठोकर खाई और समझ में नहीं आया कि यह कैसे काम करता है।

यह आदेश "जब तक आपका बॉक्स लॉक नहीं करता है, तब तक उप-प्रोसेसस का तेजी से उत्पादन होता है"।

पर क्यों? क्या मैं कम grok बृहदान्त्र हैं

user@host$ :(){ :|:& };:

वेब के समाधान से एकत्रित समाधान "बैश कमांड: () {: |: और} ;: कर्नेल मौत के लिए प्रक्रियाएं पैदा करेगा क्या आप सिंटैक्स की व्याख्या कर सकते हैं?"

यह एक फ़ंक्शन को परिभाषित करता है : जो खुद को दो बार कॉल करता है (कोड : | : 🙂 यह पृष्ठभूमि ( & ) में करता है के बाद ; फ़ंक्शन परिभाषा की गई और फ़ंक्शन : आरंभ हो जाता है

तो के हर उदाहरण: दो नए शुरू होता है: और इसी तरह … प्रक्रियाओं के द्विआधारी पेड़ की तरह …

सादे सी में लिखा है:

 while(1) { fork(); } 
 :(){ :|:& };: 

.. नाम की एक समारोह को परिभाषित करता है, जो स्वतः ही पैदा होता है (दो बार, दूसरे में एक पाइप), और खुद पृष्ठभूमि।

लाइन ब्रेक के साथ:

 :() { :|:& }; : 

का नाम बदलना : forkbomb लिए फ़ंक्शन:

 forkbomb() { forkbomb | forkbomb & }; forkbomb 

आप इस तरह के हमलों को प्रक्रियाओं की संख्या को प्रति-उपयोगकर्ता सीमित करने के लिए ulimit का उपयोग करके रोका जा सकता है:

 $ ulimit -u 50 $ :(){ :|:& };: -bash: fork: Resource temporarily unavailable $ 

अधिक स्थायी रूप से, आप /etc/security/limits.conf (डेबियन और अन्य पर, कम से कम) का उपयोग कर सकते हैं, उदाहरण के लिए:

 * hard nproc 50 

बेशक इसका मतलब है कि आप केवल 50 प्रक्रियाओं को चला सकते हैं, आप मशीन में क्या कर रहे हैं इस पर निर्भर करते हुए इसे बढ़ा सकते हैं!

इस पर कोशिश करते समय मेरे प्रभाव में भिन्नता होती है I प्रक्रियाओं और सीपीयू शक्ति की संख्या के लिए कॉन्फ़िगर की ऊपरी सीमा पर निर्भर (मेरा मानना ​​है), यह पूरी तरह से दूसरों को ठंडा करने के दौरान कुछ सिस्टम पर एक टक्कर का कारण था।