我在CentOS上使用的是Apache。 我需要爲用戶提供服務,他們可以通過點擊刪除大文件。試圖使用shell_exec的 。 但它不在後臺運行。它運行並讓用戶等待。shell_exec不能在後臺運行,還有其他解決方案嗎?
我的命令:
$ D_command = 「室射頻視頻/ '$ Mdelete'」;
shell_exec($ D_command);
謝謝!
我在CentOS上使用的是Apache。 我需要爲用戶提供服務,他們可以通過點擊刪除大文件。試圖使用shell_exec的 。 但它不在後臺運行。它運行並讓用戶等待。shell_exec不能在後臺運行,還有其他解決方案嗎?
我的命令:
$ D_command = 「室射頻視頻/ '$ Mdelete'」;
shell_exec($ D_command);
謝謝!
屁股&在命令結束時。
$D_command="nohup rm -rf videos/'$Mdelete' > /log/deletedfile.log 2>&1 &";
嘗試使用exec
運行
rm -rf videos/'$Mdelete' &
。該符號表示運行到後臺
nohup必須添加在命令的開頭。這告訴php解釋器在後臺運行進程。它不返回命令的輸出,而是返回進程編號 –
嘗試過。仍然讓用戶等待... – user692601
@ user692601你嘗試過使用'exec'還是'shell_exec'? –
試試這個:
popen($D_command, 'r')
我知道這是一個很老的問題,但我有同樣的問題,這是隻有在嘗試和失敗後才能使用解決方案exec
,shell_exec
,process_open
:
$process = popen("nohup $D_command > /dev/null 2> /dev/null & echo $!", 'r');
$pid = fread($process, 32);
如果你想在開始時添加nohup, 「nohup rm -rf videos /'$ Mdelete'&」 –
你必須添加nohup,否則進程會產生爲apache而不會線程化。 –
試過了。仍然讓用戶等待... – user692601