为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
GCT1015 2019-08-02 16:00:10
php exec命令(或类似的)不等待结果我有一个我想要运行的命令,但我不希望PHP等待结果。<?php echo "Starting Script";exec('run_baby_run');echo "Thanks, Script is running in background";?>有没有可能让PHP不等待结果..即只是启动它并移动到下一个命令。我找不到任何东西,也不确定它是否可能。我能找到的最好的是有人在一分钟内开始CRON工作。
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

文档

为了执行一个命令让它在运行时不挂起你的PHP脚本,你运行的程序不能输出回php。为此,将stdout和stderr重定向到/ dev / null,然后将其背景化。

/dev/null 2>&1 &

为了执行命令并将其作为另一个不依赖于apache线程继续运行的进程(如果有人取消该页面将不会死亡)运行,请运行以下命令:

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');


查看完整回答
反对 回复 2019-08-02
?
慕村9548890

TA贡献1884条经验 获得超4个赞

您可以在后台运行命令,&在其末尾添加a :

exec('run_baby_run &');

但单独执行此操作会挂起您的脚本,因为:

如果程序是使用exec函数启动的,为了使程序继续在后台运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。

因此,您可以将命令的标准输出重定向到文件,如果您想稍后查看,或者/dev/null如果要将其丢弃为:

exec('run_baby_run > /dev/null &');


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 2136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信