我正在使用以下网站来帮助我处理PHP中的后台进程 - http://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in-php/
我的代码基本相同,只是我的shell_exec
方法看起来像这样 -
nohup php -f /my/path/to/import_products.php 2 > /dev/null 2> /dev/null & echo $!
它正在执行的PHP脚本运行得很好并且导入了产品,但是当我向sleep(10)
添加import_products.php
时,while(is_process_running($ps))
只循环一次并退出。
似乎正在执行的命令shell_exec
正在立即完成,而不是等待10秒(来自sleep(10)
)。
为什么会出现这种情况?
修改
我想我的问题确实是“为什么进程等待PHP脚本停止显示在ps之前?” - 当PHP脚本休眠10秒时ps $pid
应该显示该过程至少10秒?
答案 0 :(得分:1)
请相应修改您的代码。
#!/usr/bin/env /usr/bin/php
。 shell_exec("nohup /usr/bin/php /my/path/to/import_products.php > /dev/null &")
。 请注意我的php路径是/ usr / bin / php我正在使用ubuntu os.So如果你的php可执行路径不同,那么相应地替换它。