Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
在命令行中调用PHP脚本并确保它们同时运行_Php_Shell - Fatal编程技术网

在命令行中调用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

我有一个在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");
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挂起,直到程序执行结束。