मैंने कांटा के बारे में पढ़ा है और जो मैं समझता हूं, प्रक्रिया को क्लोन किया गया है लेकिन कौन सी प्रक्रिया है? स्क्रिप्ट स्वयं या प्रक्रिया जिसने स्क्रिप्ट लॉन्च की थी?क्या होता है जब प्रक्रिया को फोर्क किया जाता है?
उदाहरण के लिए:
मैं अपने मशीन पर rTorrent चल रहा हूँ और जब एक धार पूरा करता है, मैं एक स्क्रिप्ट इसके खिलाफ चल चुके हैं। यह स्क्रिप्ट वेब से डेटा प्राप्त करती है, इसलिए इसे पूरा होने में कुछ सेकंड लगते हैं। इस समय के दौरान, मेरी rtorrent प्रक्रिया जमे हुए है। इसलिए मैं अगर मैं CLI से इस स्क्रिप्ट को चलाने निम्नलिखित
my $pid = fork();
if ($pid == 0) { blah blah blah; exit 0; }
का उपयोग कर स्क्रिप्ट कांटा बना दिया, यह जबकि यह पृष्ठभूमि में चलता है, बिल्कुल के रूप में मैं इरादा एक दूसरे के अंदर वापस खोल करने के लिए आता है। हालांकि, जब मैं इसे rTorrent से चलाता हूं, तो यह पहले से भी धीमा लगता है। तो वास्तव में क्या फोर्क किया गया था? क्या rtorrent प्रक्रिया क्लोन खुद और मेरी लिपि उस में भाग गया था, या मेरी लिपि क्लोन खुद ही किया? मुझे लगता है कि इसका मतलब बनता है।
एक काम पर्ल टुकड़ा पोस्ट करके प्रारंभ करें। –
स्ट्रिंग में rTorrent चलाने का प्रयास करें और देखें कि आपकी स्क्रिप्ट चलने पर यह क्या अवरुद्ध हो रहा है। यह एक सुराग दे सकता है। मैं सोच रहा था कि यह पोते की प्रक्रिया पर इंतजार कर रहा था (लेकिन ऐसा लगता है कि पारंपरिक प्रणाली कॉल का उपयोग कर व्यवहार वास्तव में संभव नहीं है। – jdizzle