当使用exec
命令在PHP中执行多个脚本时,每个脚本是一次一个地运行,还是一个接一个地运行,还是同时运行?
exec('/usr/bin/php -q process-duplicates.php');
exec('/usr/bin/php -q process-images.php');
exec('/usr/bin/php -q process-sitemaps.php');
只是想在尝试重写我的crontab之前确保它们是一个接一个的。
发布于 2017-08-06 19:39:48
当然,在后台运行的唯一方法是将&添加到命令行参数中,这将使exec()d进程进入后台:
exec("php test.php &");
所以你是对的,他们一个接一个地跑。
注意:在您的情况下,不应该使用&
,因为它将强制同时运行所有脚本。
发布于 2017-08-06 19:39:43
exec等待脚本返回,请参阅php.net
如果一个程序是用这个函数启动的,为了使它在后台继续运行,程序的输出必须重定向到一个文件或另一个输出流。如果不这样做,将导致PHP挂起,直到程序执行结束。
但是作为一个虔诚的人,请不要像这样运行您的cron工作!在crontab中为每个条目创建条目,或者将它们放在shell脚本中,并让cron运行脚本。
https://stackoverflow.com/questions/45535866
复制相似问题