【问题标题】:php running in background through shellphp通过shell在后台运行
【发布时间】:2013-01-16 17:42:16
【问题描述】:

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

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 &

成功执行,逻辑完成。但是当我通过 shell 上的 top 命令检查时

$顶

我看到所有的 php 进程都在持续运行,即使在执行完成之后也是如此。 我希望它只运行一次 php 代码,但它仍在后台运行......我应该如何停止它以及如何只执行一次......甚至在 php 文件中添加了退出(最后是 store.php)。 ...

【问题讨论】:

    标签: php background cron execution


    【解决方案1】:

    如果要结束脚本,可以在文件末尾使用return 语句。或者您可以直接致电exit()。但是,脚本一旦到达最后一行,就应该结束它自己。建议脚本永远不会到达文件末尾...我建议在文件的各个部分添加一些 echo 语句,并确保它实际上到达文件末尾。

    【讨论】:

    • 我在脚本末尾添加了退出。但是我不知道为什么php脚本在没有任何循环的情况下会连续运行...
    • 我建议将一些 echo 语句放入该文件中,然后将程序的输出刷新到一个文件中,这样您就可以看到它在执行过程中的进度。如果您知道整个运行只需要半秒,您可以使用set_time_limit(10) 将脚本的最大执行时间设置为 10 秒,这将在 10 秒后终止脚本(大部分时间。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多