猿问

php exec命令(或类似的)不等待结果

php exec命令(或类似的)不等待结果

我有一个我想要运行的命令,但我不希望PHP等待结果。

<?php
echo "Starting Script";exec('run_baby_run');echo "Thanks, Script is running in background";?>

有没有可能让PHP不等待结果..即只是启动它并移动到下一个命令。

我找不到任何东西,也不确定它是否可能。我能找到的最好的是有人在一分钟内开始CRON工作。


GCT1015
浏览 2137回答 3
3回答

SMILET

从文档:为了执行一个命令让它在运行时不挂起你的PHP脚本,你运行的程序不能输出回php。为此,将stdout和stderr重定向到/ dev / null,然后将其背景化。>&nbsp;/dev/null 2>&1 &为了执行命令并将其作为另一个不依赖于apache线程继续运行的进程(如果有人取消该页面将不会死亡)运行,请运行以下命令:exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');

慕村9548890

您可以在后台运行命令,&在其末尾添加a&nbsp;:exec('run_baby_run&nbsp;&');但单独执行此操作会挂起您的脚本,因为:如果程序是使用exec函数启动的,为了使程序继续在后台运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。因此,您可以将命令的标准输出重定向到文件,如果您想稍后查看,或者/dev/null如果要将其丢弃为:exec('run_baby_run&nbsp;>&nbsp;/dev/null&nbsp;&');
随时随地看视频慕课网APP
我要回答