2011-08-28 86 views
5

我在CentOS上使用的是Apache。 我需要爲用戶提供服務,他們可以通過點擊刪除大文件。試圖使用shell_exec的 。 但它不在後臺運行。它運行並讓用戶等待。shell_exec不能在後臺運行,還有其他解決方案嗎?

我的命令:

$ D_command = 「室射頻視頻/ '$ Mdelete'」;

shell_exec($ D_command);

謝謝!

回答

4

屁股&在命令結束時。

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

如果你想在開始時添加nohup, 「nohup rm -rf videos /'$ Mdelete'&」 –

+0

你必須添加nohup,否則進程會產生爲apache而不會線程化。 –

+0

試過了。仍然讓用戶等待... – user692601

0

嘗試使用exec運行

rm -rf videos/'$Mdelete' & 

。該符號表示運行到後臺

+0

nohup必須添加在命令的開頭。這告訴php解釋器在後臺運行進程。它不返回命令的輸出,而是返回進程編號 –

+0

嘗試過。仍然讓用戶等待... – user692601

+0

@ user692601你嘗試過使用'exec'還是'shell_exec'? –

0

試試這個:

popen($D_command, 'r') 
0

我知道這是一個很老的問題,但我有同樣的問題,這是隻有在嘗試和失敗後才能使用解決方案execshell_exec,process_open

$process = popen("nohup $D_command > /dev/null 2> /dev/null & echo $!", 'r'); 
$pid = fread($process, 32); 
相關問題