2015-04-23 34 views
1

執行此代碼:了shell_exec的nohup用的nohup.out

shell_exec('nohup command&'); 

或本

shell_exec('nohup command > /path/to/nohup.out 2>&1&'); 

但在這兩種情況下沒有的nohup.out。如何通過php運行nohup和nohup.out?

+0

第二個絕對應該已經創建了一個文件(不論是否'nohup'或'command'其實居然跑)。你確定它沒有創建文件? (或者你的意思是這個文件是空的?) –

+0

你運行這個的服務器是否允許'shell_exec()'運行? – Twisty

回答

1

了shell_exec( 'nohup命令> /path/to/nohup.out 2> ');

此行將起作用。只要確保您有輸出文件夾的寫入權限即可。考慮你的輸出文件夾是/ usr/nohup的輸出

ls -l /usr/nohup-out 

應該具有寫入,讀取和執行權限(RWX)。如果沒有,請執行以下操作:

sudo chmod -R 777 /usr/nohup-out 

現在,嘗試執行php文件。它應該在/usr/nohup-out文件夾中創建一個nohup文件。

示例腳本和結果:

1. date.php:

php date.php 

3. nohup的:

<?php 
shell_exec('nohup date > /usr/nohup-out/nohup.out 2>&1&'); 
?> 

2.從終端執行PHP .out執行後的內容

週四4月23日11點30分28秒IST 2015年

+0

>只要確保您有輸出文件夾的寫入權限 - 這是解決方案,謝謝。 –