2012-10-11 35 views
14

का उपयोग करके php पृष्ठभूमि प्रक्रिया मैंने सटीक उत्तर खोजने के लिए बहुत कुछ खोजा है लेकिन कोई भी नहीं मिला।निष्पादन फ़ंक्शन

कई लोगों ने उल्लेख किया कि हमें & कमांड के अंत में प्रतिक्रिया के लिए प्रतीक्षा न करें।
उदाहरण पृष्ठभूमि में bg.php को चलाने के लिए, यह सिफारिश की गई थी:

exec("/usr/bin/php bg.php &"); 

लेकिन यह मेरे लिए काम नहीं करता। और मुख्य स्क्रिप्ट bg.php के पूर्ण निष्पादन के लिए प्रतीक्षा करती है।

मैंने लॉग इनाइल में bg.php आउटपुट लिखने के लिए कहीं भी पढ़ा है लेकिन मेरी पृष्ठभूमि स्क्रिप्ट किसी आउटपुट का उत्पादन नहीं करती है। यह कुछ प्रक्रिया करता है और फिर डेटाबेस में कुछ लिखता है।

मैं बस अपनी स्क्रिप्ट bg.php चलाने के लिए चाहता हूं और इसे समाप्त होने की प्रतीक्षा न करें।

कृपया सही कोड सहित मेरी सहायता करें।

उत्तर

18

आप कार्यक्रमों उत्पादन मार्ग बदलने के लिए कहीं भी, आमतौर पर/dev है/बातिल

exec($cmd . " > /dev/null &"); 
+0

ठीक काम करता है! लेकिन/dev/null निर्देशिका क्या है? क्या यह आदेश आउटपुट को फ़ाइल में लिखता है? – Aliweb

+1

/dev/null बस इसे भेजे गए डेटा को त्याग देता है, यदि आप प्रोग्राम आउटपुट की आवश्यकता है तो आप इसे वैकल्पिक रूप से कुछ फ़ाइल पर रूट कर सकते हैं – ninaj

0

आप स्क्रीन का उपयोग पर विचार किया है? आप एक स्क्रीन सत्र शुरू कर सकते हैं जो एक अलग प्रक्रिया में चलता है।

screen -d -m -S my_bg_session /usr/bin/php bg.php 

तो फिर तुम यह करने के लिए बाद में कनेक्ट कर सकते हैं यह अभी भी चल रहा है:

screen -r my_bg_session 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^