有没有办法在不等待命令完成的情况下使用shell_exec?

2022-08-30 07:35:19

我有一个流程密集型任务,我想在后台运行。

用户点击一个页面,PHP脚本运行,最后,根据某些条件,如果需要,它必须运行一个shell脚本,例如:

shell_exec('php measurePerformance.php 47 844 email@yahoo.com');

目前我使用shell_exec但这需要脚本等待输出。有没有办法执行我想要的命令,而无需等待它完成?


答案 1

如何添加。

"> /dev/null 2>/dev/null &"

shell_exec('php measurePerformance.php 47 844 email@yahoo.com > /dev/null 2>/dev/null &');

请注意,这也摆脱了 stdio 和 stderr。


答案 2

这将执行一个命令,并与正在运行的进程断开连接。当然,它可以是您想要的任何命令。但是对于测试, 你可以创建一个 php 文件与 sleep(20) 命令它.

exec("nohup /usr/bin/php -f sleep.php > /dev/null 2>&1 &");

推荐