如何在PHP中同步执行shell命令

Rah*_*hul 25 php shell

我需要通过cmd运行多个脚本(5个脚本),我想确保除非并且直到第一个脚本完成第二个脚本不应该启动.因此,在第一个脚本完成后,只有第二个应该是第三个,依此类推.目前我使用以下代码来执行此操作

exec ("php phpscript1.php ");
exec ("php phpscript2.php ");
exec ("php phpscript3.php ");
exec ("php phpscript4.php ");
exec ("php phpscript5.php ");
Run Code Online (Sandbox Code Playgroud)

我认为这些脚本是异步运行的,任何建议的人都可以同步运行这些脚本.

sti*_*vlo 63

PHP exec将等待被调度程序的执行完成,然后处理下一行,除非你在字符串的末尾使用&来在后台运行程序.

  • 您使我免于进行不必要的实验,我向您致敬。 (3认同)

Den*_*nis 7

如果我找对你,你就是从php脚本中执行php脚本.

通常,php exec ("php phpscript1.php");在处理下一行之前等待执行完成.

要避免这种情况,只需将输出重定向到/dev/null文件或在后台运行即可.

例如:exec ("php phpscript1.php >/dev/null 2>&1 &");.


小智 5

查看php.net 上的exec函数语法。您将看到exec默认情况下不会异步运行任何东西。

exec有另外两个参数。第三个,return_var如果脚本运行成功或任何异常被触发,可以给你一个提示。您可以使用该变量来检查是否可以运行后续脚本。

测试它并告诉我们它是否适合您。