PHP CLI-运行多个异步/断开连接的执行命令

时间:2019-03-23 00:32:34

标签: php

php中,您可以使用exec()函数发出系统命令。就像命令提示符一样,您可以使用半冒号立即发送给命令。

exec("command1; command2");

效果很好。

此外,您可以使用&> /dev/null &来使脚本停止运行,而不必等待命令完成,并忽略脚本的结果。那也很棒。符合您的期望。

我想要做的是以非常特定的方式结合这两个功能。我的脚本所做的是使用touch创建一个空文件,该文件表明我的cp运行缓慢。然后,我的脚本发送一个“断开连接”的exec命令来执行复制。该脚本不等待它,因为同时有许多副本在运行。我的脚本只是进入等待模式,在此模式下每隔几秒钟检查一次这些指示器文件,等待所有副本完成。

所以最终我要做的是先运行cp -R /old/path /new/path,然后运行rm /status/thiscopyrm必须遵循cp,但是两者都需要以“气泡”运行,而我的脚本不会停止并等待它。

如果我将命令移到单独的“子脚本”中,我想可以很容易地做到这一点,但是我真的不希望它成为多文件脚本。我尝试将&> /dev/null &放在分号对的末尾,但这仅适用于第二个命令(有意义)。然后我意识到,如果我在两个命令的末尾都用分号分隔的双重命令exec(),则它应该异步运行两个命令,这意味着rm不会等待{ {1}}在运行之前完成。

还有其他方法吗?

0 个答案:

没有答案