Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过shell在后台运行php_Php_Background_Cron_Execution - Fatal编程技术网

通过shell在后台运行php

通过shell在后台运行php,php,background,cron,execution,Php,Background,Cron,Execution,创建了一个cron,它确实每六个小时执行一次,每次执行时都会创建一个shell脚本,其中包含对store.php的不同输入。 **/6***/usr/bin/php/var/www/execute.php>/dev/null& 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& 它执行成功,逻辑完成。但是当

创建了一个cron,它确实每六个小时执行一次,每次执行时都会创建一个shell脚本,其中包含对store.php的不同输入。 **/6***/usr/bin/php/var/www/execute.php>/dev/null&

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&

它执行成功,逻辑完成。但是当我在shell上查看top命令时

$top

我看到所有php进程都在持续运行,即使在执行完成之后也是如此。
我希望它只运行一次php代码,但它仍然在后台运行。。。我应该如何阻止它,如何只做一次。。。甚至在php文件中添加了exit(末尾是store.php)…

如果要结束脚本,可以在文件末尾使用语句。或者你可以直接打电话。然而,脚本应该在到达最后一行时结束它自己。暗示脚本永远不会到达文件的结尾。。。我建议在文件的各个部分加入一些echo语句,并确保它真正到达文件末尾。

我在脚本末尾添加了exit。但我不知道为什么php脚本在没有任何循环的情况下会持续运行……我建议将一些echo语句放入该文件中,然后将程序的输出刷新到一个文件中,这样您就可以看到它执行到了什么程度。如果您知道整个过程只需要半秒的时间就可以运行,那么您可以将脚本的最大执行时间设置为10秒左右,这将在10秒后(大部分时间)终止脚本