2013-02-01 78 views
0

創建一個cron,每6小時執行一次,每次執行時都會創建一個不同的輸入到store.php的shell腳本。 * */6 * * */usr/bin/php /var/www/execute.php>/dev/null &php通過shell在後臺運行

execute.php將使用以下命令創建test.sh文件並執行test.sh

的/ usr/bin中/ PHP的/var/www/store.php 'X'>的/ dev/null的& 的/ usr/bin中/ PHP的/var/www/store.php 'Y'>的/ dev/null的&

它成功執行並完成邏輯。但是當我通過top命令檢查了殼

$頂部

我看到所有的PHP程序連續運行,執行完畢後也。 我希望它只運行一次php代碼,但它仍然在後臺運行......我應該如何阻止它,以及如何做到這一點......甚至在php文件(store.php結尾處)中添加了退出, ...

回答

0

如果要結束腳本,可以在文件末尾使用return語句。或者你可以直接致電exit()。然而,腳本一旦到達最後一行,應該結束它自己。建議腳本不會到達文件末尾......我會建議在文件的各個部分放入一些echo語句,並確保它實際上到達文件末尾。

+0

我已經在腳本結尾處添加了exit。但我不知道爲什麼php腳本沒有任何循環時連續運行... –

+0

我推薦將一些echo語句放入該文件,然後將程序的輸出清除到一個文件中,以便可以看看它進入它的執行有多遠。如果你知道它只需要半秒鐘就可以運行,你可以使用['set_time_limit(10)']設置腳本的最大執行時間爲10秒鐘(http://php.net/manual/en /function.set-time-limit.php),並且會在10秒後(大部分時間)終止腳本。 –

+0

謝謝...讓我試試... –