在命令行中调用PHP脚本并确保它们同时运行
我有一个在CRON上运行的PHP脚本,如下所示:在命令行中调用PHP脚本并确保它们同时运行,php,shell,Php,Shell,我有一个在CRON上运行的PHP脚本,如下所示: system(“/usr/bin/php.”uuuu DIR uuuuuuuu.”/main.php>。uuuu DIR uuuuuuu.”/main_ulog.txt”) 在main.php文件完成一些处理之后,我想执行另外两个脚本。下面是我在main.php中的操作方式: system("/usr/bin/php ".__DIR__."/script1.php > ".__DIR__."/script1_log.txt"); syste
system(“/usr/bin/php.”uuuu DIR uuuuuuuu.”/main.php>。uuuu DIR uuuuuuu.”/main_ulog.txt”)代码>
在main.php文件完成一些处理之后,我想执行另外两个脚本。下面是我在main.php中的操作方式:
system("/usr/bin/php ".__DIR__."/script1.php > ".__DIR__."/script1_log.txt");
system("/usr/bin/php ".__DIR__."/script2.php > ".__DIR__."/script2_log.txt");
由于script1.php和script2.php都在进行非常繁重的处理(每个处理可能需要大约5个小时),我想知道这两个调用是否同时运行,或者下一个系统调用是否必须等待第一个调用完成才能开始
我的目标是让两个脚本同时运行 以下是我如何让它们同时运行:
exec(“/usr/bin/php.”uuu DIR uuuu./script1.php>。uuu DIR uuu./script1 u log.txt”和“/usr/bin/php.”uuu DIR uuu./script2.php>。uuu DIR uuuu./script2 log.txt”)代码>主程序是否必须等待两个程序都完成?你可以试试线程。如果主脚本不关心这两个问题,那么在调用script1和script2之前,main.php中有一些代码需要运行(大约需要15分钟)。script1和script2只需打开一个CSV文件并处理其数据。一个做偶数行,一个做奇数行。这对于你自己来说是微不足道的,不管它们运行的是什么simultaneously@Dagon我测试过了,但它们没有同时运行,第二个函数在第一个函数完成后运行。只要记录了输出或处理了输出,exec调用就不会阻塞注意:如果使用此函数启动程序,为了使其在后台继续运行,程序的输出必须重定向到文件或其他输出流。否则将导致PHP挂起,直到程序执行结束。