2011-08-28 11 views
5

मैं CentOS पर apache में php का उपयोग कर रहा हूँ। मुझे उपयोगकर्ताओं की सेवा करने की आवश्यकता है, कि वे क्लिक करके बड़ी फ़ाइलों को हटा सकते हैं। shell_exec का उपयोग करने का प्रयास कर रहा है। लेकिन यह पृष्ठभूमि में नहीं चला है। यह चलता है और उपयोगकर्ता को प्रतीक्षा करता है।shell_exec पृष्ठभूमि में कोई अन्य समाधान नहीं चला है?

मेरे आदेश:

$ D_command = "rm- आरएफ वीडियो/'$ Mdelete'";

shell_exec ($ D_command);

धन्यवाद! आदेश के अंत में

उत्तर

4

गधा &।

$D_command="nohup rm -rf videos/'$Mdelete' > /log/deletedfile.log 2>&1 &"; 
+0

यदि आप शुरुआत में चाहते हैं तो आप नोहप जोड़ सकते हैं। "नोहुप आरएम-आरएफ वीडियो/'$ एमडीलीट' और" –

+0

आपको नोहप जोड़ना है, अन्यथा प्रक्रिया अपाचे के रूप में उत्पन्न होती है और थ्रेड नहीं होती है। –

+0

कोशिश की। अभी भी उपयोगकर्ता इंतजार कर रहा है ... – user692601

0

exec का उपयोग कर

rm -rf videos/'$Mdelete' & 

चलाने की कोशिश करें। एम्परसेंड पृष्ठभूमि को चलाने के लिए इंगित करता है

+0

आदेश की शुरुआत में नोहप को जोड़ा जाना है। यह पृष्ठभूमि में प्रक्रिया को चलाने के लिए php दुभाषिया को बताता है। आदेश के आउटपुट को वापस करने के बजाय, यह प्रक्रिया आईडी –

+0

लौटाता है। अभी भी उपयोगकर्ता इंतजार कर रहा है ... – user692601

+0

@ user692601 क्या आपने 'exec' या' shell_exec' का उपयोग करने का प्रयास किया था? –

0

इस प्रयास करें:

popen($D_command, 'r') 
0

मैं जानता हूँ कि यह काफी एक पुराने सवाल है, लेकिन मैं एक ही मुद्दा था, और यह था exec, shell_exec, process_open:

$process = popen("nohup $D_command > /dev/null 2> /dev/null & echo $!", 'r'); 
$pid = fread($process, 32); 
के साथ प्रयास करने और विफल होने के बाद केवल समाधान समाधान