2013-02-01 52 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

谢谢...让我试试... –